题:
输入一个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;结合十进制转二进制思维,转换后拼接翻转。
执行效果如图