ในที่นี้ เราจะเห็นปัญหาหนึ่ง โดยที่เรานำตัวเลข n มา เราจะต้องหาอีกค่าหนึ่งว่า x โดยที่ x + ผลรวมหลักของ x จะเท่ากับจำนวนที่กำหนด n สมมติว่าค่าของ n คือ 21 โปรแกรมนี้จะส่งกลับตัวเลข x =15 เป็น 15 + ผลรวมหลักของ 15 เช่น 15 + 1 + 5 =21 =n
เพื่อแก้ปัญหานี้ เราต้องปฏิบัติตามแนวทางง่ายๆ เราจะวนซ้ำถึง 1 ถึง n ในการวนซ้ำแต่ละครั้ง เราจะดูว่าผลรวมของตัวเลขและผลรวมหลักของมันเหมือนกับตัวเลขหรือไม่ จากนั้นให้หยุด ไม่เช่นนั้นให้ดำเนินการต่อ
ตัวอย่าง
#include<iostream> using namespace std; int getDigitSum(int n) { int sum = 0; while (n) { sum += n % 10; n /= 10; } return sum; } int getNumber(int n) { for (int i = 0; i <= n; i++) if (i + getDigitSum(i) == n) return i; return -1; } int main() { int n = 21; cout << "The value of x is: " << getNumber(n); }
ผลลัพธ์
The value of x is: 15