本文主要是介绍通过Java代码,计算阿尔法乘积,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:
资源限制 时间限制: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;
/*** * @author hf*/
public class Blogs1 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);long n = scanner.nextLong();// long n = 4018224312L; //eglong temp = 0; // 定义一个临时变量作为中间值int sum = 1; // 每一轮的阿尔法乘积值// 条件一:如果x是一个个位数,那么它的阿尔法乘积就是它本身;即等到n等于个位数时即可跳出循环while (n >= 10) {temp = n; // 赋值临时变量// 条件二:n大于10时,x的阿尔法乘积就等于它的各位非0的数字相乘所得到的那个整数的阿尔法乘积,// 即n这整个数,所有大于零的数相乘,并记录每次相乘的值while (temp > 0) {// 得到每一位并判断是否大于零if (temp % 10 != 0) {sum *= (temp % 10);}temp /= 10; // 不管数字是否大于零,循环都要消掉最后一位}n = sum; // 将本轮得到的阿尔法乘积值赋给nsum = 1; // 阿尔法乘积值清1}System.out.println(n);scanner.close();}
}
案例结果
这篇关于通过Java代码,计算阿尔法乘积的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!