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;
}

posted @ 2012-04-19 15:39  naglish  阅读(195)  评论(0编辑  收藏  举报