链接: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; }
天下武功,唯快不破
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步