牛牛想对一个数做若干次变换,直到这个数只剩下一位数字。
变换的规则是:将这个数变成 所有位数上的数字的乘积。比如285经过一次变换后转化成2*8*5=80.
问题是,要做多少次变换,使得这个数变成个位数。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
String str = scanner.next();
if(str.length()==0 || str==null){
return;
}
//输入就是一位数字
if(str.length()==1){
System.out.println(0);
return;
}
//循环执行变换直至这个数只剩下一位数字
int count=0;
while(true){
count++;
int len = str.length();
long sum=1;
for(int i=0;i<len;i++){
int t = str.charAt(i)-'0';
if(t==0){
System.out.println(count);
return;
}else{
sum*=t;
}
}
if(sum<10){
System.out.println(count);
return;
}
str = new String(sum+"");
}
}
}
}
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个整数:");
int temp=sc.nextInt();
int count=0;
while(temp>=10){
ArrayList<Integer> a=new ArrayList<>();
while(temp>0){
a.add(temp%10);
temp/=10;
}
int sum=1;
for(int i=0;i<a.size();i++){
sum*=a.get(i);
}
System.out.println("第"+(count+1)+"次");
System.out.println(sum);
temp=sum;
count++;
}
System.out.println("总共执行了"+count+"次");
sc.close();
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int count = 0;
while(num/10 != 0) {
ArrayList<Integer> a = new ArrayList<>();
while(num != 0) {
a.add(num%10);
num = num / 10;
}
int m = 1;
for(int i=0; i<a.size(); i++) {
m *= a.get(i);
}
num = m;
count ++;
}
System.out.println(count);
in.close();
}
}