Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Maximum of sum and product of digits until number is reduced to a single digit in C++


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมหาค่าสูงสุดระหว่างผลบวกและผลคูณของหลักเลขจนกว่าตัวเลขจะลดเหลือหลักเดียว

เราจะได้รับตัวเลขสุ่ม งานคือหาและพิมพ์ค่าสูงสุดของผลบวกและผลคูณของหลักเลขของตัวเลขที่กำหนดจนกว่าจะกลายเป็นหลักเดียว

ตัวอย่างโค้ด

#include <bits/stdc++.h>
using namespace std;

long repeatedSum(long n) {
    if (n == 0) return 0;
    return (n % 9 == 0) ? 9 : (n % 9);
}

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

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