题目描述:
资源 时间:1.0s 内存:256.0MB
计算一个无符号整数的阿尔法乘积。
对于一个无符号整数x来说,阿尔法乘积是这样来计算的:如果x是一个个位数,那么它的阿尔法乘积就是它本身;否则的话,x的阿尔法乘积就等于它的各位非0的数字相乘所得到的那个整数的阿尔法乘积。
例子
例如,输入4018224312的阿尔法乘积等于8
它是经过以下的几个步骤计算出来的:
被计算值 ⇒ 被计算值中需要阿尔法计算的值 ⇒ 计算结果
4018224312⇒418224312⇒3072
3072⇒372⇒42
42 ⇒ 4*2 ⇒ 8
输入: 4018224312 输出: 8
解题思路
对输入的n取余,大于零相乘,并记录每次相乘的值,循环计算,等到n等于个位数时即可跳出循环。
import java.util.Scanner;
public class Blogs1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long n = scanner.nextLong();
long temp = 0;
int sum = 1;
while (n >= 10) {
temp = n;
while (temp > 0) {
if (temp % 10 != 0) {
sum *= (temp % 10);
}
temp /= 10;
}
n = sum;
sum = 1;
}
System.out.println(n);
scanner.close();
}
}
案例结果