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