您的位置:首页 > 编程语言 > Go语言

ZJUOJ 1073 Round and Round We Go

2014-05-01 16:28 525 查看
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=73

 

高精度乘法。一次乘以2~len,再判断是否是原字符串的一个cut-string

  有一个函数叫strstr()..用上能精简很多代码。。

 

#include<stdio.h>
#include<string.h>
char tem[80];

bool hpm(void)
{
char rostr[200];
char temp[80];
strcpy(temp,tem);
int i;
int j;
char t;
bool ans=true;
int sign=0;
int len=strlen(temp);
for(i=2;i<=len;i++)			//从2乘到len
{
for(j=len-1;j>=0;j--)		//高精度乘法
{
t=tem[j];
temp[j]=( (tem[j]-'0')*i+sign)%10+'0';
sign=((t-'0')*i+sign)/10;

}
strcpy(rostr,temp);
strcpy(rostr+len,temp);
if(strstr(rostr,tem)==NULL)
ans=false;
}
return ans;

}

int main()
{

while(scanf("%s",tem)!=EOF)
{
if(hpm())
printf("%s is cyclic\n",tem);
else
printf("%s is not cyclic\n",tem);

}
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ACM 高精度乘法