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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP