java递归
来源:互联网 发布:网上上课的软件 编辑:程序博客网 时间:2024/06/11 22:59
所谓递归,是指程序调用自身,当然,递归不会无休止地调用下去,它必然有一个出口,当满足条件时程序也就结束了,不然的话,那就是死循环了。
- package test;
- /** 递归类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 {
- return 0; // 当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);// 十进制转换二进制
- }
- }
阅读全文
0 0
- java递归
- Java递归
- JAVA递归
- java 递归
- Java - 递归
- Java 递归
- JAVA递归
- java 递归
- java递归
- java递归
- 递归 Java
- java递归
- Java递归
- java递归
- Java 递归
- JAVA递归
- java递归
- 【Java】递归
- C++ 类的大小 struct/class内存对齐问题
- 集合框架--实用类
- jsday06补充(字体大中小 结合css和js 列表list 只显示单个 和缩放)
- 苹果分享 ARKit 应用人机界面设计指南
- 删除重复的候选框( python 版本)
- java递归
- C++多线程——_beginthread()和_beginthreadex
- 欢迎使用CSDN-markdown编辑器
- 数据库存储方法
- EM算法
- Grid
- java编程加载窗口,实现物体变速运动(台球的运动)
- java去除字符串中的空格、回车、换行符、制表符
- mybatis-config.xml