递归算法

1. 递归算法的思路:

 

 

 

 1 import java.util.Scanner;
 2 
 3 /*
 4  * 把十进制数转换为二进制数
 5  * 比如(121)(10) = (1111001)(2)
 6  * 
 7  * 这里就用到了递归算法,不断调用自身函数. 另外, 对于结果的处理第从低位往高位开始处理的.
 8  * 
 9  */
10 
11 public class DiGui {
12 
13     public static String convertTo(String result, int dividend, int divisor){
14         
15         //既是初始化判断,亦是收敛的判断
16         if(dividend == 0){
17             result="";
18             return result;
19         }
20 
21         /*
22          * 有两点需要注意:
23          * 1. 这里需要写出不断调用子函数的形式
24          * 2. 对于返回的结果值要用一个值去接收
25          */
26         result = convertTo(result,dividend/divisor,divisor);
27         
28         //对于递归函数的处理结果,是从低位往高位亦即从后往前处理的
29         result += String.valueOf(dividend%divisor);
30         
31         return result;
32     }
33     
34     public static void main(String[] args) {
35         
36         @SuppressWarnings("resource")
37         Scanner in = new Scanner(System.in);
38         
39         System.out.print("请输入被除数: ");
40         int dividend = in.nextInt();
41         
42         System.out.print("请输入被除数: ");
43         int divisor = in.nextInt();
44         
45         String result = "";
46         result = convertTo(result, dividend, divisor);
47         
48         System.out.println(dividend+"的"+divisor+"进制数是:"+ result);
49     }
50     
51     
52     
53 }
View Code

 

posted @ 2017-12-07 10:59  fengze  阅读(221)  评论(0编辑  收藏  举报