免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: siupan
打印 上一主题 下一主题

[help]超大數求(factorial) [复制链接]

论坛徽章:
0
1 [报告]
发表于 2002-11-07 16:10 |显示全部楼层

[help]超大數求(factorial)

for(r=1&#59;r<Digit+1&#59;r++)改为for(r=j&#59;r<Digit+1&#59;r++)如何?

论坛徽章:
0
2 [报告]
发表于 2002-11-08 09:56 |显示全部楼层

[help]超大數求(factorial)

楼上的兄弟,你的结果明显不对嘛。
还有我说for(r=1&#59;r<digit+1&#59;r++) -->; for(r=j&#59;r<digit+1&#59;r++) 跟程序的正确性无关,这是效率方面的问题(效率需求不很高,也就无所谓了,都没问题的)。
#include <stdio.h>;

void main(){
int i,j,k,r&#59;
int data[200000]&#59;
int n&#59;
int digit&#59;
for (i=1&#59;i<200000+1&#59;i++)data=0&#59;

data[0]=1&#59;
data[1]=1&#59;
digit=1&#59;

printf(&quot;Enter a number what you want tocalculus:&quot&#59;
scanf(&quot;%d&quot;,&amp;n)&#59;

for(i=1&#59;i<n+1&#59;i++){
for(j=1&#59;j<digit+1&#59;j++)data[j]*=i&#59;
for(j=1&#59;j<digit+1&#59;j++){
if (data[j]>;=10){
for(r=j&#59;r<digit+1&#59;r++){
if (data[digit]>;=10)
                                                      digit++&#59;
data[r+1]+=data[r]/10&#59;
data[r]=data[r]%10&#59;
}
}
}
}

printf(&quot;%d! = &quot;,n)&#59;
for (k=digit&#59;k>;0&#59;k--)printf(&quot;%d&quot;,data[k])&#59;
printf(&quot;\n&quot&#59;
}

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP