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

หาจำนวนคู่ที่มากที่สุดไม่เกิน N ใน C++

ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมเพื่อหาจำนวนที่มากที่สุดซึ่งหลักทุกหลักเป็นเลขคู่ และไม่เกินค่า N ที่กำหนด

ขั้นตอนการแก้ปัญหา

  • กำหนดค่าเริ่มต้นของตัวเลข n
  • เขียนลูปจาก i = n
    • ตรวจสอบว่าหลักของตัวเลขปัจจุบันเป็นเลขคู่ทั้งหมดหรือไม่
    • ถ้าเงื่อนไขเป็นจริง ให้พิมพ์ตัวเลข
    • มิฉะนั้น ให้ลดค่า i ลง

ตัวอย่างโค้ด

#include <bits/stdc++.h> 
using namespace std; 

int allDigitsEven(int n) { 
    while (n) { 
        if ((n % 10) % 2) { 
            return 0; 
        } 
        n /= 10; 
    } 
    return 1; 
} 

int findLargestEvenNumber(int n) { 
    int i = n; 
    while (true) { 
        if (allDigitsEven(i)) { 
            return i; 
        } 
        i--; 
    } 
} 

int main() { 
    int N = 43; 
    cout << findLargestEvenNumber(N) << endl; 
    return 0; 
}

ผลลัพธ์

หากรันโค้ดด้านบน จะได้ผลลัพธ์ดังนี้:

42

สรุป

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