发信人: 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!
|
|