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 }