時間限制: 1Sec 記憶體限制: 128MB
題目描述:(原題連結)
計算一個整數的阿爾法乘積。對于一個整數x來說,它的阿爾法乘積是這樣來計算的:如果x是一個個位數,那麼它的阿爾法乘積就是它本身;
否則的話,x的阿 爾法乘積就等于它的各位非0的數字相乘所得到的那個整數的阿爾法乘積。
例如:4018224312的阿爾法乘積等于8,它是按照以下的步驟來計算的:
4018224312 → 418224312 → 3072 → 372 → 42 → 4*2 → 8
編寫一個程式,輸入一個正整數(該整數不會超過6,000,000),輸出它的阿爾法乘積。
輸入:
輸入隻有一行,即一個正整數。
樣例輸入:
4018224312
輸出:
輸出相應的阿爾法乘積。
樣例輸出 :
8
解題思路:
字元串的遞歸
注意事項:
無
參考代碼:
import java.util.Scanner;
public class Main {
private static String fab(String num) {
if(num.length()==1)
return num;
else {
int sum=1;
for(int i=0;i<num.length();i++) {
if(num.charAt(i)!='0')
sum=sum*(num.charAt(i)-'0');
}
return fab(Integer.toString(sum));
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s =in.next();
System.out.println(fab(s));
in.close();
}
}