和之前做过的缩位求和是一个道理
计算一个无符号整数的阿尔法乘积。对于一个无符号整数x来说,
它的阿尔法乘积是这样来计算的:如果x是一个个位数,
那么它的阿尔法乘积就是它本身;
否则的话,x的阿尔法乘积就等于它的各位非0
的数字相乘所得到的那个整数的阿尔法乘积。
例如,4018224312的阿尔法乘积等于8,
它是经过以下的几个步骤计算出来的:
4018224312à418224312à3072
3072à372à42
42à4*2à8
输入:
4018224312
输出:
8
思路:就是挨个乘起来,遇到0跳过,接着乘,如果大于两位数,拆开再乘就可。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long x = scanner.nextLong();
while (x > 10) { //就是大于两位数
long count = 1;
String string = x + ""; //给一个空的字串
for (int i = 0; i < string.length(); i++) {
if (string.charAt(i) - '0' != 0) { //强制转换,不等于0,才可以乘
count *= string.charAt(i) - '0'; //乘完以后,强制转换。
}
}
x = count; //替换出来
}
System.out.println(x);
}