Computer >> Máy Tính >  >> Lập trình >> C ++

Tối đa của tổng và tích của các chữ số cho đến khi số được giảm xuống còn một chữ số trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình tìm tối đa tổng và tích của các chữ số cho đến khi số được giảm xuống còn một chữ số

Đối với điều này, chúng tôi sẽ được cung cấp một số ngẫu nhiên. Nhiệm vụ của chúng ta là tìm và in ra tổng và tích tối đa của các chữ số của một số đã cho cho đến khi nó bao gồm một chữ số duy nhất

Ví dụ

#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;
}

Đầu ra

8