免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
11 [报告]
发表于 2002-11-05 19:03 |只看该作者

[help]超大數求(factorial)

出來的答案是錯的....
如69!就與windows的小算盤所出答案不一樣

论坛徽章:
0
12 [报告]
发表于 2002-11-05 19:04 |只看该作者

[help]超大數求(factorial)

忘了道謝
先謝了!

论坛徽章:
0
13 [报告]
发表于 2002-11-05 23:26 |只看该作者

[help]超大數求(factorial)

[这个贴子最后由syo在 2002/11/05 11:28pm 编辑]

#include <stdio.h>;
void main()
{
int i,j,k,r&#59;
int data[1000]&#59;
int n&#59;
int digit&#59;

for (i=1&#59;i<1000+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=1&#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;
}

论坛徽章:
0
14 [报告]
发表于 2002-11-05 23:37 |只看该作者

[help]超大數求(factorial)

我靠,怎么我的程序的行缩进都不行呀
真难看呀

……
这程序不是我写的......

论坛徽章:
0
15 [报告]
发表于 2002-11-05 23:38 |只看该作者

[help]超大數求(factorial)

你应该看看数据结构

论坛徽章:
0
16 [报告]
发表于 2002-11-05 23:40 |只看该作者

[help]超大數求(factorial)

下面引用由siupan2002/11/05 10:35am 发表的内容:
我也是這樣想的, 但太複習, 怎也寫不好, 救救我!!

连这都觉得复杂?
思路已经知道了,拿出60分钟先把框图画出来,画不出来改行。

论坛徽章:
0
17 [报告]
发表于 2002-11-05 23:45 |只看该作者

[help]超大數求(factorial)

To syo
可不可以介绍一下你的解题思路和怎样确定你这个算法的上限,我试了一下,在n=450范围内可以正常运行。超过450就有问题,我怀疑是数组越界造成的?

论坛徽章:
0
18 [报告]
发表于 2002-11-06 00:27 |只看该作者

[help]超大數求(factorial)

哎,原来找不到第一个用这种算法做的人,要不就可以问问他(她)是怎么想到这样来解决的。

论坛徽章:
0
19 [报告]
发表于 2002-11-06 01:42 |只看该作者

[help]超大數求(factorial)

受益不淺!!
謝謝指教!!

论坛徽章:
0
20 [报告]
发表于 2002-11-06 17:44 |只看该作者

[help]超大數求(factorial)

[这个贴子最后由syo在 2002/11/06 06:38pm 编辑]
下面引用由pydwh2002/11/05 11:45pm 发表的内容:
To syo
可不可以介绍一下你的解题思路和怎样确定你这个算法的上限,我试了一下,在n=450范围内可以正常运行。超过450就有问题,我怀疑是数组越界造成的?
450以后就超过我定的数组1000位了
你可以把第5和第9行的1000加大就行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP