ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่หาจำนวนที่น้อยกว่า 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
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น