在 C++ 中,將數字續減為一位數之前,數字和乘積的最大值


本教程中,我們將討論一個程式,用於在數字減少到一位數字之前找到數字和乘積的最大值

為此,我們將提供一個隨機數。我們的任務是找到並打印出給定數字的各個數字的和和乘積的最大值,直到它轉換為一位數字

示例

 即時演示

#include<bits/stdc++.h>
using namespace std;
//converting number to single digit by adding
long repeatedSum(long n) {
   if (n == 0)
      return 0;
   return (n % 9 == 0) ? 9 : (n % 9);
}
//converting number to single digit by multiplying
long repeatedProduct(long n) {
   long prod = 1;
   while (n > 0 || prod > 9) {
      if (n == 0) {
         n = prod;
         prod = 1;
      }
      prod *= n % 10;
      n /= 10;
   }
   return prod;
}
//finding maximum
long maxSumProduct(long N) {
   if (N < 10)
      return N;
   return max(repeatedSum(N), repeatedProduct(N));
}
int main() {
   long n = 631;
   cout << maxSumProduct(n)<<endl;
   return 0;
}

輸出

8

更新於: 2020 年 9 月 9 日

174 次瀏覽

開始您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.