我们得到了很多。目的是计算可被4整除的num的旋转。
由于旋转不能一次又一次地完成。我们将使用被4整除的属性。如果最后两位数字可被4整除,则数字可被4整除。如果数字是1234,则其旋转将是1234、4123、3412、2341,其中3412可被4整除,因为最后两位数字12是被4整除
让我们通过示例来理解。
输入-num = 15324
输出-可以被4整除的旋转计数是:2
说明-旋转是-
15324, 41532, 24153, 32415, 53241
其中15324和41532可被4整除。
输入-num = 848484
输出-可以被4整除的旋转计数是-6
说明-旋转是-
848484, 484848, 848484, 484848, 848484, 484848
所有这些旋转都可以除以4
我们将数字转换为字符串,并使用for循环遍历数字。对于每对两位数,将它们转换为整数,并用4检验除数。如果可整,则增加计数。
将数字取为long long num。
Rotation_4(long long num)函数采用数字num并返回num的可被4整除的旋转计数。
将num转换为字符串str = to_string(num)。
num中的位数将是length = str.length()。
取临时变量digit = 0来存储数字对的整数值。
将初始计数设为0。
如果length为1,则仅存在一个数字。将其转换为整数,digit =(str.at-'0')
检查除数是否为4,并将结果返回为1或0。
现在使用for循环遍历str从i = 0到I <length-1。
使用digit =(str.at(i)-'0')* 10 +(str.at(i + 1)-'0')来制作两位数,因为每对将成为旋转的最后两位数。
使用digit =(str.at(length-1)-'0')* 10 +(str.at-'0')对由最后一位和第一位组成的对执行与上述相同的过程 用4检查除数并更新计数。
最后返回结果。
#include <bits/stdc++.h>
using namespace std;
int Rotation_4(long long num){
string str = to_string(num);
int length = str.length();
int digit = 0, count = 0;
if (length == 1){
digit=(str.at(0)-'0');
if(digit%4 == 0){
return 1;
}
else{
return 0;
}
}
for (int i=0; i<(length-1); i++){
digit = (str.at(i)-'0')*10 + (str.at(i+1)-'0');
if(digit%4 == 0){
count++;
}
}
digit = (str.at(length-1)-'0')*10 + (str.at(0)-'0');
if(digit%4 == 0){
count++;
}
return count;
}
int main(){
long long num = 24040;
cout<<"Count of rotations divisible by 4 are: "<<Rotation_4(num);
return 0;
}
输出结果
如果我们运行上面的代码,它将生成以下输出-
Count of rotations divisible by 4 are: 4