天天看點

變換次數

牛牛想對一個數做若幹次變換,直到這個數隻剩下一位數字。

變換的規則是:将這個數變成 所有位數上的數字的乘積。比如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();
    }

}           

複制

變換次數
變換次數