📄 1313m round and round we go.cpp
字号:
#include <cstdio>
#include <string>
using namespace std;
char num[71];
char mnum[71];
int len1,len2;
int multiple(int m)
{
int i,j,inc,t,s;
inc=0;
s=0;
while(num[s]=='0')
s++;
for(i=len1-1 , j=0;i>=s;i-- , j++)
{
t=(num[i]-'0')*m+inc;
mnum[j]=(t%10)+'0';
inc=0;
if(t>=10)
inc=t/10;
}
while(inc>0)
{
mnum[j++]=inc%10+'0';
inc/=10;
}
while(j<len1)//位数不足,前补零,不影响数的大小
{
mnum[j++]='0';
}
mnum[j]=0;
return j;
}
bool check()
{
int i,j,t;
i=0;
if(len2!=len1)
return false;
while(num[i])
{
if(num[i] == mnum[0])
{
t=i;
for(j=0;j<len2;j++)
{
if(num[t] != mnum[j])
break;
t--;
if(t<0)
t=len1-1;
}
if(j==len2) return true;
}
i++;
}
return false;
}
int main()
{
int i,j;
bool flag;
while( scanf("%s",num)!=EOF )
{
len1=strlen(num);
i=0;
while(num[i]=='0') i++;
if(num[i]==0)
{
printf("%s is cyclic\n",num);
continue;
}
flag=true;
for(i=2;i<=len1;i++)
{
len2=multiple(i);
flag=check();
if(!flag)
break;
}
if(flag)
printf("%s is cyclic\n",num);
else
printf("%s is not cyclic\n",num);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -