java算法_输出只有235组成的数字

题:

输入一个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;结合十进制转二进制思维,转换后拼接翻转。

执行效果如图

猜你喜欢

转载自blog.csdn.net/qq_29752857/article/details/108309355