ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมเพื่อหาตัวเลขที่น้อยกว่า N และมีผลรวมของหลักมากกว่าผลรวมของหลักของ N
ขั้นตอนการแก้ปัญหา
- เขียนฟังก์ชันหาผลรวมของหลัก
- กำหนดค่าเริ่มต้นของ n
- เขียนลูปที่วนจาก n - 1 ลงมาจนถึง 1
- ตรวจสอบผลรวมหลักของตัวเลขปัจจุบันกับผลรวมหลักของ n
- ถ้าผลรวมหลักของตัวเลขปัจจุบันมากกว่า n ให้คืนค่าตัวเลขนั้น
- ไปยังตัวเลขถัดไป
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
int sumOfDigits(int n) {
int digitsSum = 0;
while (n > 0) {
digitsSum += n % 10;
n /= 10;
}
return digitsSum;
}
int findLargestNumber(int n) {
int i = n - 1;
while (i > 0) {
if (sumOfDigits(i) > sumOfDigits(n)) {
return i;
}
i--;
}
return -1;
}
int main() {
int n = 75;
cout << findLargestNumber(n) << endl;
return 0;
}
ผลลัพธ์
หากรันโค้ดด้านบน จะได้ผลลัพธ์ดังนี้:
69
สรุป
หากมีข้อสงสัยเกี่ยวกับบทช่วยสอนนี้ สามารถถามได้ในส่วนความคิดเห็น