发信人: styc(Frank!) 
整理人: dynadino(2001-01-28 22:44:45), 站内信件
 | 
 
 
解法:3817-1=3816个。
 原理:
 对于9^n,如果它的首位是9,那么9^(n-1)乘上9的时候,首位一定不会产生进位;如果不是9,就一定会有进位,而且只能进一位。(前面一句就是题目帖标题中的“细节”所在。)9^4000共有3817位数,从9^1的一位到9^4000的三千多位,数字首位共有3816次进位,就是有3816个数,不是以9开头。(此答案已经计算机验证正确。)
 
 验证程序如下:
 #include <math.h>
 main()
 { int a,b,c[4000],e=0;
   double d=0,LG9=log10(9);
   for(a=1;a<4000;a++)
     c[a]=0;
   c[0]=1;
   for(a=1;a<=4000;a++)
     { d+=LG9;
       for(b=0;b<=d+1;b++)
         c[b]*=9;
       for(b=0;b<=d+1;b++)
         if(c[b]>10)
           { c[b+1]+=c[b]/10;
             c[b]%=10; }
       if(c[(int)d]!=9)
         e++; }
   printf("%d\n",e); }
 
 
  ---- 
     Hala Madrid! Hala Madrid!
     A triunfar en buena lid, defendiendo tu color!
     Hala Madrid! Hala Madrid! Hala Madrid!
 
     Siempre te apoyo,
     El Real Madrid Club de Fútbol que amo!
          | 
 
 
 |