เราได้รับตัวเลข N เป้าหมายคือการนับการหมุนของ N ที่เป็นเลขคี่และการหมุนที่เป็นเลขคู่ หากหมายเลข N คือ 123 การหมุนของมันจะเป็น 123, 321, 132 การหมุนคี่คือ 123 และ 321 ( 2 ) และการหมุนคู่คือ 132 ( 1 )
ให้เราเข้าใจด้วยตัวอย่าง
ป้อนข้อมูล − N=54762
ผลผลิต −
จำนวนการหมุนของ N ซึ่งเป็นเลขคี่ − 2
จำนวนการหมุนของ N ซึ่งเท่ากับ − 3
คำอธิบาย − การหมุนคือ −
54762, 25476, 62547, 76254, 47625
การหมุนเท่ากันคือ 3 − 54762, 25476, 76254
การหมุนคี่คือ 2 − 62547, 47625
ป้อนข้อมูล − N=3571
ผลผลิต
จำนวนการหมุนของ N ซึ่งเป็นเลขคี่ − 4
จำนวนการหมุนของ N ซึ่งเท่ากับ − 0
คำอธิบาย − การหมุนคือ −
3571, 1357, 7135, 5713
การหมุนเท่ากันคือ 0 −
การหมุนคี่คือ 4 − 3571, 1357, 7135, 5713
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
ตัวเลขเป็นเลขคี่หรือคู่สามารถตรวจสอบได้โดยใช้หลักหน่วยเป็นคี่/คู่ ขณะหมุนตัวเลข ตัวเลขทั้งหมดจะเป็นตัวเลขหลักหน่วย ดังนั้นเราจะหารตัวเลขด้วย 10 และตรวจสอบว่าหลักหน่วยเป็นคู่/คี่และนับเพิ่มขึ้นตามลำดับหรือไม่
-
ใช้ตัวเลขเป็นจำนวนเต็ม N.
-
ฟังก์ชัน Even_Odd_rotation(int N) ใช้ตัวเลข N และพิมพ์จำนวนการหมุนคี่และเลขคู่
-
นับเริ่มต้นเป็น Even_rotation และ Odd_rotation
-
การใช้ do-while loop take value=N%10 สำหรับหน่วยหลัก
-
หากค่า%2==0 จะเป็นการเพิ่มขึ้นแบบคู่ขนาน มิฉะนั้นจะเพิ่ม Odd_rotation
-
ลด N ลง 10 สำหรับหลักหน่วยถัดไป
-
พิมพ์ Even_rotation เป็นการหมุนของ N ซึ่งเท่ากัน
-
พิมพ์ Odd_rotation เป็นการหมุนของ N ซึ่งเท่ากัน
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; void Even_Odd_rotation(int N){ int Even_rotation = 0; int Odd_rotation = 0; do{ int value = N % 10; if(value % 2 == 1) { Odd_rotation++; } else { Even_rotation++; } N = N / 10; } while(N != 0); cout<<"Count of rotations of N which are Odd are: "<<Odd_rotation; cout<<"\nCount of rotations of N which are Even are: "<<Even_rotation; } int main(){ int N = 341; Even_Odd_rotation(N); return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Count of rotations of N which are Odd are: 2 Count of rotations of N which are Even are: 1