เราได้รับจำนวนเต็ม งานคือการนับจำนวนหลักคู่และหลักคี่ และตรวจสอบว่าหลักคู่เกิดขึ้นจำนวนคู่ครั้ง และหลักคี่เกิดขึ้นจำนวนคี่ครั้งหรือไม่
ตัวอย่าง
Input − digit = 12345 Output − even: 2, odd: 3 → Yes
คำอธิบาย − หลักคู่: 2,4 (2 หลัก = จำนวนคู่) หลักคี่: 1,3,5 (3 หลัก = จำนวนคี่)
Input − digit = 44556 Output − even: 3, odd: 2 → No
คำอธิบาย − หลักคู่: 4,4,6 (3 หลัก = จำนวนคี่) หลักคี่: 5,5 (2 หลัก = จำนวนคู่) ไม่ตรงเงื่อนไข
แนวทางการแก้ปัญหา
- แยกแต่ละหลักด้วย n % 10 และ n /= 10
- นับหลักคู่และหลักคี่แยกกัน
- ตรวจสอบ: even_count % 2 == 0 และ odd_count % 2 == 1
ตัวอย่างโค้ด C++
#include <iostream>
using namespace std;
int main() {
int n = 12345, even = 0, odd = 0;
while (n > 0) {
int digit = n % 10;
if (digit % 2 == 0) even++;
else odd++;
n /= 10;
}
cout << "Even: " << even << ", Odd: " << odd << endl;
if (even % 2 == 0 && odd % 2 != 0)
cout << "Yes";
else
cout << "No";
return 0;
}
ผลลัพธ์
Even: 2, Odd: 3 Yes
บทความนี้สาธิตการนับหลักคู่และหลักคี่ในจำนวนเต็ม พร้อมตรวจสอบเงื่อนไขว่าหลักคู่ต้องมีจำนวนคู่ครั้ง และหลักคี่ต้องมีจำนวนคี่ครั้ง