java中的递归

所谓递归,是指程序调用自身,当然,递归不会无休止地调用下去,它必然有一个出口,当满足条件时程序也就结束了,不然的话,那就是死循环了。
看下面这个类,有几个递归方法,看了之后肯定会对你学习递归很有帮助的。
/**递归类Recursion的定义*/
public class Recursion{
//递归方法DecimalToBinary,把一个十进制数转换成二进制数
public static void DecimalToBinary(int num){
if(num ==0){        //当num=0时,循环结束
return;
}else{
DecimalToBinary(num/2);  //调用递归方法
System.out.print (num%2);
}
}
//递归方法sum,求1+2+...+100 的求和
public static int sum(int num){
if(num > 0){
return num + sum(num-1); //调用递归方法
}else{
return0;      //当num=0时,循环结束
}
}    
//递归方法yueshu,求两个数的最大公约数   ,用两个数的绝对值与这两个数较小的那个一直比较,直到相等为止。               
public static void yueshu(int num1,int num2){
if(num1 == num2){
System.out.println(num1);  //num1=num2时,结束
}
else{
yueshu(abs(num1-num2),min(num1,num2)); //调用递归方法
}
}
//求两个数绝对值
public static int abs(int num){
return num>0 ? num : -num;
}
//求两个数较小者                                    
public static int min(int num1,int num2){
return num1 > num2 ? num2 :num1;
}
//递归方法hanon,求瀚诺塔函数
public static void hanon(int n,char a,char b,char c){
if(n == 1){
move(1,a,c);//最后一种情况是,把A柱子上盘子移到C柱子上。
return;
}
hanon(n-1,a,c,b);  //递归,把n-1个盘子从A 盘上借助C盘移到B盘上
move(n,a,c);//调用move()方法
hanon(n-1,b,a,c);//递归,把把n-1个盘子从B盘上借助A盘移到C盘上
}
public static void move(int n,char a,char c){
System.out.println(n+":"+a+"-->"+c);//打印移动盘子情况
}
//主函数main
public static void main(String [] args){
yueshu(12,8);              //求最大公约数
hanon(3,'A','B','C');      //求瀚诺算法
System.out.println(sum(100));//求和
DecimalToBinary(103);//十进制转换二进制
}
}

转载于:https://www.cnblogs.com/lijiahong/p/4447977.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

雨中的蚊子为啥不会被雨滴砸死?

全世界只有3.14 % 的人关注了爆炸吧知识在细雨中漫步是很浪漫的一件事,但作为蚊子,雨中飞行相当于天上掉汽车!你有没有想过,它们是怎么活下来的?直到2015年,菠萝科学奖物理学奖颁给美国佐治亚理工学院胡立德…

.NET 6 迁移到 Minimal API

.NET 6 迁移到 Minimal APIIntro上次写了一篇 Minimal API Todo Sample,有些童鞋觉得 Minimal API 有些鸡肋,有一些功能的支持都不太好,但是其实 Host 之前支持的功能 Minimal API 大部分都是支持的,上次的 Todo Sample 完全没有使…

教你透彻了解红黑树

教你透彻了解红黑树 作者:July、saturnman 2010年12月29日本文参考:Google、算法导论、STL源码剖析、计算机程序设计艺术。本人声明:个人原创,转载请注明出处。推荐阅读:Left-Leaning Red-Black Trees, Dagstuhl Wor…

cass字体_不动产 准备工作 第一步: 管理CASS码

管理CASS码https://www.zhihu.com/video/1063850168960647168管理CASS码 功能概述:通过管理CASS码将不动产基础矢量数据分为房屋、房屋附属、其他设施三类,同时通过管理CASS码可以对建筑物面积计算规则进行自定义和统设、以及设置建筑物注记文本(和数据入…

lol修改服务器域名,LOL历史转区用户解冻大区官网自助系统地址 新版申请解冻账号网址...

原标题:LOL历史转区用户解冻大区官网自助系统地址 新版申请解冻账号网址英雄联盟在9月1日正式上线了历史转区用户解冻服务,因转区导致冻结账号的玩家可以在这边申请解冻了,很多玩家还不清楚申请的地址在哪,下面就来为大家详细的介…

c语言浮点型常量表示平均数_小白基础知识必备|| 整型常量与进制间的转换

一、C语言关键字C语言的关键字共有32个,根据关键字的作用,可分为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。数值类型关键字(12个)void、char、short、int、long、float、double、signed、unsigned、struct、enum、union控制语句…

2.页面布局示例笔记

1.CSS中的三种定位机制 标准文档流 就是流式布局中的定位浮动定位相对定位 2.当元素设置了float或者相对定位的时候,就无法通过设置margin的auto进行居中了 3.设置了浮动的元素任然处于标准文档流当中,任然会占用标准文档流的影响。而不像相对定位…

中国代工厂的困惑:把大牌t恤卖到99块3件,还会有人买吗?

▲ 点击查看“很多人都知道大牌有溢价但是不知道大牌溢价逼近900%打个比方一件1000块的T恤,T恤成本如果是100那么剩下的900,算是买了个大牌logo”这是我们上个月去到的一家中国代工厂工厂内部人员向我们透露的他说,其实无论是纪梵希、爱马仕、…

LUA面向对象编程技巧

详文请见 http://ffown.sinaapp.com/?p11 1. LUA中的对象 我们知道,对象由属性和方法组成。LUA中最基本的结构是table,So 必须用table描述对象的属性。lua中的function可以用来表示方法。那么LUA中的类 可以通过table function模拟出来。至于继承&…

.NET 排序 Array.SortT 实现分析

System.Array.Sort<T> 是.NET内置的排序方法, 灵活且高效, 大家都学过一些排序算法&#xff0c;比如冒泡排序,插入排序,堆排序等&#xff0c;不过你知道这个方法背后使用了什么排序算法吗?先说结果, 实际上 Array.Sort 不止使用了一种排序算法, 为了保证不同的数据量的排…

Android 中文api (81)——InputMethod [输入法]

前言 本章内容是android.view.inputmethod.InputMethod&#xff0c;为输入法相关章节&#xff0c;版本为Android 2.3 r1&#xff0c;翻译来自"六必治"&#xff0c;欢迎大家访问他的博客&#xff1a;http://www.cnblogs.com/zcmky/&#xff0c;再次感谢"六必治&q…

联想电脑如何添加无线网络连接服务器,安装英特尔MYWIFI的操作步骤

适用范围:(1)操作系统&#xff1a;仅支持VISTA /WINDOWS 7&#xff0c;不支持WINDOWS XP/2003/2000&#xff1b;(2)硬件&#xff1a;INTEL MY WIFI支持INTEL 5100以及以上无线网卡&#xff0c;非INTEL无线网卡不支持。知识点分析:英特尔的MY WIFI技术是一项针对笔记本电脑无线网…

假如把女生比作一种水果

1 和睡相不好的人一起睡觉是什么体验&#xff1f;2 箱子里的是我方输出&#xff0c;外面的是对方打野3 女儿问爸爸小时候都玩什么&#xff0c;于是爸爸给她做了这个。。4 推上一网友随手拍到的照片&#xff0c;就好像是三张图片拼起来的一样。5 一位台湾艺用解剖学老师的硬核授…

张萍萍 计科高职13-1 201303014010

通过这次的实践&#xff0c;我第一次感觉学好一门英语是多么的重要&#xff0c;这次历尽千辛万险才把作业完成&#xff0c;通过这次实践我发现我还有许多的地方进行改进&#xff0c;不过通过这次试验我也学到了不少的东西&#xff0c;我学会了如何使用gethub来管理代码和如何管…

python tkinter进度条_在python3.7中更新tkinter进度条

抱歉&#xff0c;花了一段时间&#xff0c;但我能搞定。在 我不知道你遇到了什么与Python3.x不兼容的地方&#xff0c;但我找到了我跟踪的这个更新的视频。在 除了“停止”命令之外&#xff0c;它几乎完美地工作了&#xff0c;我无法开始工作。在from tkinter import * from tk…

ai怎么调界面大小_科研论文作图系列-从PPT到AI (一)

这是“投必得学术”推送的第44篇文章&#xff0c;专注科研技能和资讯分享&#xff01;关注“投必得学术”&#xff0c;可以看到我们所有干货和资讯&#xff01;导语&#xff1a;之前的推送中&#xff0c;小编给大家介绍过几款科研作图软件&#xff0c;包括统计分析软件Origin和…

HDU3363_贪心

解题大意&#xff1a; 给你一个串&#xff0c;串中有H跟T两种字符&#xff0c;然后切任意刀&#xff0c;使得能把H跟T各自分为原来的一半。 解题思路&#xff1a; 把串想象成一个环&#xff0c;只要满足H跟T都为偶数个&#xff0c;那么就可以做一条过圆心的直线把H跟T平分掉&am…

讲师征集| .NET Conf China 2021正式启动!

去年年初疫情突袭武汉&#xff0c;打得我们措手不及在众多 .NET 开发者们的殷切期盼声中一场轰动极客圈的技术狂欢趴毅然在苏州盛大开启、圆满落幕&#xff01;我们坚信&#xff0c;你还记忆犹新……▽因为&#xff0c;TA 是 .NET 5.0 发布的”里程碑“线上线下轮番轰炸的技术干…

【Android游戏开发十一】手把手让你爱上Android sdk自带“9妹”

本站文章均为 李华明Himi 原创,转载务必在明显处注明&#xff1a; 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/321.html 前几天群成员讨论过关于9patch的工具【我比较喜欢喊它9妹子&#xff0c;西西(*^_^*)】、然后研究了一下&#xff0c;比较…

为什么PostgreSQL比MongoDB还快之完结篇(深挖单点索引查询)

之前两篇测试中发现&#xff1a;单点索引查询中PostgreSQL的速度是MongoDB(WiredTiger引擎)的4倍。http://blog.chinaunix.net/xmlrpc.php?rblog/article&uid20726500&id4960138http://blog.chinaunix.net/xmlrpc.php?rblog/article&uid20726500&id4981629虽…