牛牛想對一個數做若幹次變換,直到這個數隻剩下一位數字。
變換的規則是:将這個數變成 所有位數上的數字的乘積。比如285經過一次變換後轉化成2*8*5=80.
問題是,要做多少次變換,使得這個數變成個位數。
輸入描述:
輸入一個整數。小于等于2,000,000,000。
輸出描述:
輸出一個整數,表示變換次數。
輸入例子:
285
輸出例子:
2
AC代碼:
import java.util.Scanner;
public class Main {
public static String Mul(String str){
int res = 1;
char[] ch = str.toCharArray();
for (int i = 0 ; i < ch.length ; i++){
res *= (int)(ch[i] - '0');
}
return String.valueOf(res);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
StringBuffer str = new StringBuffer(in.next());
int res = 0;
if (str.length() == 1){
res = 0;
}else{
while(true){
String tmp = Mul(str.toString());
if (tmp.length() != 1){
res++;
str.delete(0, str.length());
str.append(tmp);
}else{
res++;
break;
}
}
}
System.out.println(res);
in.close();
}
}
複制
