zoj 1889(坑爹的数论)
题目中遇到的问题:1,题目一点也看不懂呀!看了半天,又用有道翻译,还是不懂。最后果断搜网页。
可有关的网页没多少,别人的代码又不想看。最后找到题意了。哈哈。。。。。
给出一个数N,N不是5或者2的倍数,求一个长度最小的由1组成的十进制数,
满足这个数是N的倍数,输出1的个数。。。。0<N<100000;
在http://blog.csdn.net/aaguojia/article/details/6648902上,十分感谢作者。
2,公式的推导,花了很长时间,最后推出来了,呵呵。
10^0%n+10^1%n+10^2%n+......+10^(x-1)%n==n
结果就是x;
但10^(x-1)会溢出,本人用的事int型,不知道其他的如何,你们可以试一下的
结果可以告诉我,谢谢!找规律的,10^2%n==(10^1%n*10)%n,就不会溢出了。
3,被虐了一下午,数论知识有待提高啊!很没用,呜呜呜呜!
#include<stdio.h>
int main()
{
int n,x,n0,n1,sum;
while(scanf("%d",&n)!=EOF)
{
x=1;sum=1;n0=1;
while(sum%n)
{
n1=(10*n0)%n;
sum+=n1;
n0=n1;
x++;
}
printf("%d\n",x);
}
return 0;
}