ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมหาค่าสูงสุดระหว่างผลบวกและผลคูณของหลักเลขจนกว่าตัวเลขจะลดเหลือหลักเดียว
เราจะได้รับตัวเลขสุ่ม งานคือหาและพิมพ์ค่าสูงสุดของผลบวกและผลคูณของหลักเลขของตัวเลขที่กำหนดจนกว่าจะกลายเป็นหลักเดียว
ตัวอย่างโค้ด
#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