原题链接:循环
/*过段时间再改吧,先保存下来(小的整数基本没毛病)*/
#include<stdio.h>
#include"malloc.h"
#include"math.h"
int main()
{
int n,k,count=1,flag=1,j,temp;
long po=1;
scanf("%d%d",&n,&k);
int *p=(int*)malloc(k*sizeof(int));
temp=n;
for(j=k-1;j>=0;j--)
{
p[j]=temp%10;
temp=temp/10;
}
po=n;
while(flag)
{
count++;
po*=n;//po=pow(n,count);精度不够
for(j=k-1;j>=0;j--)
{
if(po%10!=p[j]) break;
else po=po/10;
}
if(j==-1) {flag=0;count--;}
if(count>1000) {printf("-1\n");break;}
}
if(flag==0) printf("%d\n",count);
return 0;
} 0.0分
4 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include<stdio.h> #include<math.h> void main() { int num,n; int i,l,x=1,w[10000]; scanf("%d%d",&num,&n); if(num<pow(10,n-1)) printf("-1\n"); else { for(i=1;i<=10000;i++) { x*=num; w[i]=x%(int)pow(10,n); if(x>pow(10,n)) x=w[i]; // printf("i=%d,x=%d,w[%d]=%d\n",i,x,i,w[i]); } for(l=1;l<i;l++) { if(w[1]==w[1+l]&&w[1+l]==w[1+2*l]) { printf("%d\n",l); break; } } } } 帮看看错在何处,总是提示运行错误,在我本地运行是没有问题的