哈哈哈哈,学过计算机组成原理后就知道,如果想比快,没有任何东西比精练的汇编来得凶悍了~~
淘宝杜琨
To: kai 版主的二次方
假如你记性不好,我可以帮你回忆一下你设立这个贴子的目的:你是为了打击C版的学弟学妹们,你认为他们写的程序计算50次1000!竟然要7秒多,真是烂得可以。所以,你还提出一个口号:挑战速度的极限。
现在,你用什么通用性来搪塞我,只是为不给我3000分找理由!而且我们也说定比的是10000!的速度,不是10001!也不是9999!所以,你的理由不成立。
不给我3000分,你就对不行C版的学弟学妹!你是我的偶像,不给我3000分,你在我心中
的光辉形像就大打折扣了。^_^
To: 神vLinux飘飘 前C高手版版主
你说的是否正确,我愚味不知道。你就用汇编写,我用C,我们俩个再比。可是,你会汇编么?哈哈,哈哈,要么你用JAVA,JAVA你会的。哈哈,哈哈,B4你这个PT。
To: 激情依旧 现任版主
C++方便是因为别人把你认为烦的事都处理好了。如果你用VB,BCB写程序还会更方便。
我是今天才注册的,也写了这个算法的代码,不过我不会算时间,请那位帮我算算时间,谢谢:
#include<stdio.h>
/*the max is 1144*/
main()
{ int intx;
/*printf("\nInput:");
scanf("%d",&intx);*/
for(intx=0;intx<50;intx++)
opt(1000);
}
opt(int x)
{ int res[3005],reslen,i,j,k,tmp;
res[1]=reslen=1;
for(i=1;i<=x;i++)
{ for(j=1;j<=reslen;j++)
res[j]*=i;
for(k=1;k<=reslen;k++)
if(res[k]>9)
{ tmp=res[k];
res[k]%=10;
if(k==reslen)
res[++reslen]=0;
res[k+1]+=tmp/10;
}
}
printf("\n");
/*for(i=reslen;i>=1;i--)
printf("%d",res[i]);*/
printf("\n\nLenth: %d",reslen);/*getch();*/
}
同志,终于看到一个C的,问一下,为啥我复制运行之后,老是LENTH 2568???
这代表啥?