对一个数做若干转换,直到这个数只剩下一位数字

变换规则:

将这个数变成所有位数上数字的乘积,比如285经过一次转换变成2*8*5=80;

问题:要做多少次转换,使得这个数变成个位数




import java.util.Scanner;


public class a2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int count = 0;
int n = (int) Math.log10(a) + 1;// 位数
int y = 1;//乘积
int d = a;
while (n > 1) {
int[] x = new int[n];
for (int i = 0; i < n; i++) {
x[i] = d % 10;
y = y * x[i];
d = d / 10;
}
d = y;
n=(int) Math.log10(d)+1;
count++;//次数

}
System.out.println(count);
}
}

猜你喜欢

转载自blog.csdn.net/qq_35307947/article/details/78355911