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 循环获取 value=N%10 作为个位数。

  • 如果 value%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

更新于: 2020-12-01

128 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.