通过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();}
}

案例结果

案例结果


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部