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