美文网首页
LeetCode题解之整数的各位积和之差

LeetCode题解之整数的各位积和之差

作者: l1fe1 | 来源:发表于2020-07-07 22:35 被阅读0次

    宝石与石头

    题目描述

    给你一个整数 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

    解题思路

    通过取模运算得到 n 的最后一位,依次进行乘法和加法运算,然后相减得到结果。

    复杂度分析

    • 时间复杂度:O(logn)。
    • 空间复杂度:O(1)。

    代码实现

    class Solution {
        public int subtractProductAndSum(int n) {
            int mul = 1;
            int add = 0;
            while (n > 0) {
                mul *= n % 10;
                add += n % 10;
                n /= 10;
            }
            return mul - add;
        }
    }
    

    相关文章

      网友评论

          本文标题:LeetCode题解之整数的各位积和之差

          本文链接:https://www.haomeiwen.com/subject/elstcktx.html