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 }