----------------解决方案--------------------------------------------------------
我也想看明白。
----------------解决方案--------------------------------------------------------
我们一直在努力
----------------解决方案--------------------------------------------------------
真是强人!哪找的算法?
----------------解决方案--------------------------------------------------------
只有继续学习了.
----------------解决方案--------------------------------------------------------
//在VC6.0下快速计算圆周率π的1万位
//若想算30万位请把下文中两处36000
//均扩大30倍即可。
#include<stdio.h>
#include<malloc.h>
long c=36000,f[36000],*p=f;
void main()
{ long a=100000,e=0,i,j;
for(i=0;i<c;i++)*p++=a/5;
for(p--;c>0;c-=18,p-=18)
{ unsigned long d=0;
i=c;j=c+c-1;
_asm mov eDI,p
loopi:
_asm mov eax,[eDI]
_asm mul Dword ptr a
_asm mov ecx,edx
_asm mov ebx,eax
_asm mov eax,d
_asm mul dword ptr i
_asm add eax,ebx
_asm adc edx,ecx
_asm div dword ptr j
_asm mov d,eax
_asm mov [eDI],edx
_asm sub eDI,04 // sizeof(long)
_asm dec dword ptr j
_asm dec dword ptr j
_asm dec dword ptr i
_asm jnz loopi
printf("%05ld",e+d/a);
e=d%a;
}
}
----------------解决方案--------------------------------------------------------
现在想来冲之兄的确很了不起啊!
----------------解决方案--------------------------------------------------------
嗯。没有电脑的时候用他的大脑能算到那种程度。
已经是非人类了。
领先外国几百年啊。
不简单。。。。
----------------解决方案--------------------------------------------------------
果然是很高效的算法,研究研究!
----------------解决方案--------------------------------------------------------
我觉得是不是很微分有关啊..是不是把一个圆分成很多份再算啊...不过真的要继续学习啊..难啊...
----------------解决方案--------------------------------------------------------