在 C++ 中计算整数中各个数字的乘积与和之差


假设我们有一个数字。我们需要找出各个数字的和与乘积。然后找出和与乘积之间的差。比如说,如果数字是 5362,那么和就是 5 + 3 + 6 + 2 = 16,而 5 * 3 * 6 * 2 = 180。所以 180 – 16 = 164。

要解决这个问题,需要逐个获取每个数字并相加相乘,然后返回差值。

示例

为了更好地理解,我们来看看以下实现 −

 实时演示

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
      int subtractProductAndSum(int n) {
         int prod = 1;
         int sum = 0;
         for(int t = n;t;t/=10){
            sum += t % 10;
            prod *= t % 10;
         }
         return prod - sum;
      }
};
main(){
   Solution ob;
   cout << ob.subtractProductAndSum(5362);
}

输入

5362

输出

164

更新于:2020 年 4 月 29 日

384 次浏览

开启您的职业生涯

完成课程,获得认证

立即开始
广告