计算C中的奇数和偶数N的旋转

我们给定一个数字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循环将单位数字的值= N%10。

  • 如果值%2 == 0,则为偶数Even_rotation,否则为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