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