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