Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หาจำนวนที่มากที่สุดน้อยกว่า N ที่ผลรวมหลักมากกว่าผลรวมหลักของ N ใน C++

ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมเพื่อหาตัวเลขที่น้อยกว่า 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

สรุป

หากมีข้อสงสัยเกี่ยวกับบทช่วยสอนนี้ สามารถถามได้ในส่วนความคิดเห็น