เราได้รับเลขจำนวนเต็มและภารกิจคือการนับเลขคู่และเลขคี่เป็นตัวเลข นอกจากนี้ เราจะคอยตรวจสอบว่าเลขคู่ในจำนวนเต็มเกิดขึ้นเป็นจำนวนคู่หรือไม่ และเลขคี่ในจำนวนเต็มนั้นเกิดขึ้นเป็นจำนวนคี่
ตัวอย่าง
Input − digit = 12345 Output − count for even digits = 2 count for odd digits = 3
คำอธิบาย − ใช่ นอกจากนี้ ตัวเลขคู่ยังเกิดขึ้นเป็นจำนวนเท่า เช่น 2 และเลขคี่เกิดขึ้นเป็นจำนวนคี่ครั้ง เช่น 3
Input − digit = 44556 Output − count for even digits = 3 count for odd digits = 2
คำอธิบาย-:ไม่ เนื่องจากเลขคู่เกิดขึ้นเป็นจำนวนคี่ เช่น 3 และเลขคี่เกิดขึ้นเป็นจำนวนคู่ เช่น 2
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
ป้อนค่าจำนวนเต็มที่ประกอบด้วยเลขคี่และเลขคู่
-
ประกาศตัวแปรสองตัว ตัวหนึ่งสำหรับการนับเลขคี่ และอีกตัวสำหรับการนับเลขคู่และเริ่มต้นพวกมันด้วย 0
-
เริ่มการวนซ้ำในขณะที่ตัวเลขมากกว่า 0 และลดระดับด้วย “หลัก/10” เพื่อให้เราดึงตัวเลขแต่ละหลักเป็นจำนวนเต็ม
-
หากตัวเลขหารด้วย มากกว่า จะเป็นเลขคู่ จะเป็นเลขคี่
-
หากพบตัวเลขเป็นเลขคู่ ให้เพิ่มจำนวนสำหรับเลขคู่ 1 และหากหลักที่พบเป็นเลขคี่ ให้เพิ่มจำนวนสำหรับเลขคี่ 1
-
ทีนี้ สำหรับการตรวจสอบว่าเลขคู่เกิดขึ้นเป็นจำนวนคู่หรือไม่ ให้หารจำนวนคู่ด้วย 2 ถ้ามันเป็น 0 มันก็จะเกิดเป็นจำนวนคู่ไม่เช่นนั้นจะเป็นจำนวนคี่
-
และสำหรับการตรวจสอบว่าเลขคี่เกิดขึ้นเป็นจำนวนคี่หรือไม่ ให้หารจำนวนคี่ด้วย 2 ถ้ามันมา !0 มันจะเกิดเป็นจำนวนคี่ไม่เช่นนั้นจะเป็นจำนวนคู่
-
พิมพ์ผลลัพธ์
ตัวอย่าง
#include <iostream>
using namespace std;
int main(){
int n = 12345, e_count = 0, o_count = 0;
int flag;
while (n > 0){
int rem = n % 10;
if (rem % 2 == 0){
e_count++;
} else {
o_count++;
}
n = n / 10;
}
cout << "Count of Even numbers : "<< e_count;
cout << "\nCount of Odd numbers : "<< o_count;
// To check the count of even numbers is even and the
// count of odd numbers is odd
if (e_count % 2 == 0 && o_count % 2 != 0){
flag = 1;
} else {
flag = 0;
}
if (flag == 1){
cout << "\nYes " << endl;
} else {
cout << "\nNo " << endl;
}
return 0;
} ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Count of Even numbers : 2 Count of Odd numbers : 3 Yes