题:
输入一个n,输出一个只有2 3 5组成的数字,由小到大,比如n=1,输出2,n=2,输出3,n=3,输出5,n=,4,输出22,n=5,输出23……
代码实现:
import java.util.Scanner; public class test { public static void main(String[] args) { while (true) { System.out.println("请输入n:"); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String str = ""; String[] strArray = {"5", "2", "3"}; while (n >= 1) { int r = n % 3; if (n <= 3) { str += strArray[r]; n = 0; } else { str += strArray[r]; if (r == 0) { n=n/3-1; } else { n = n / 3; } } } str = new StringBuilder(str).reverse().toString(); System.out.println(str); } } }
实现思路,观察数字规律,输出的数字与输入的n,与n和3的余数有关,如n与3的取余为0,输出尾数为5,n与3的取余为1,输出尾数为2,n与3的取余为2,输出尾数为3;高位n与3的取余为0,输出尾数为2;结合十进制转二进制思维,转换后拼接翻转。
执行效果如图