1281.整数的各位积和之差

1281.整数的各位积和之差

题目描述:

给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。

示例 1:

输入:n = 234
输出:15
解释:
各位数之积 = 2 * 3 * 4 = 24
各位数之和 = 2 + 3 + 4 = 9
结果 = 24 - 9 = 15
示例 2:

输入:n = 4421
输出:21
解释:
各位数之积 = 4 * 4 * 2 * 1 = 32
各位数之和 = 4 + 4 + 2 + 1 = 11
结果 = 32 - 11 = 21

提示:

1 <= n <= 10^5

题解1:

输的范围为1~100000,计算每一位的值求和与积,最后求积和之差

class Solution {
    public int subtractProductAndSum(int n) {
//计算每一位上的数字
        int shiwan = n/100000;
        int wan = n%100000/10000;
        int qian = n%10000/1000;
        int bai = n%1000/100;
        int shi = n%100/10;
        int ge = n%10; 
 //求和
        int sum = shiwan+wan+qian+bai+shi+ge;
 //求积
        int ji = 1;
        if(shiwan!=0){
            ji = shiwan*wan*qian*bai*shi*ge;
        }else if(wan!=0){
            ji = wan*qian*bai*shi*ge;
        }else if(qian!=0){
            ji = qian*bai*shi*ge;
        }else if(bai!=0){
            ji = bai*shi*ge;
        }else if(shi!=0){
            ji = shi*ge;
        }else{
            ji = ge;
        }
//返回差值
        return ji-sum;
    }
}
题解1改进:

利用循环改进题解1

class Solution {
    public int subtractProductAndSum(int n) {
        int ji = 1;
        int sum = 0;
        while(n!=0){
        	ji *=n%10;
        	sum +=n%10;
        	n/=10;
        } 
        return ji-sum;
    }
}
提交结果:

在这里插入图片描述

发布了21 篇原创文章 · 获赞 19 · 访问量 594

猜你喜欢

转载自blog.csdn.net/weixin_44458246/article/details/104187746