干嘛弄得这么复杂呢?用个科学计数不就完了吗.100w都没问题
/*
Name: 用科学计数法求大数阶乘
Copyright:
Author:
Date: 24-10-07 16:33
Description:
*/
#include <iostream>
using namespace std;
int main()
{
double i,sum=1,pow=0;
cin>>i;
for(long val=1; val<=i; ++val)
{
sum*=val;
while(sum>=10)
{
sum=sum/10;
++pow;
}
}
cout<<i<<"!="<<sum<<"e+"<<pow<<endl;
system("pause");
return 0;
}
----------------解决方案--------------------------------------------------------
这个是在楼主的代码基础上,把数组进行了扩大.下面的图片是程序的运行情况.
[此贴子已经被作者于2007-10-24 23:40:49编辑过]
----------------解决方案--------------------------------------------------------
明显51楼的不知道什么是高精度,不知道1000!会溢出
但52楼的图片够搞笑
by 雨中飞燕 C/C++学习讨论群:46520219
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
Blog: http://yzfy.programfan.com
[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url] [url=http://blog.programfan.com/article.asp?id=24801]请不要写出非int声明的main函数[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
----------------解决方案--------------------------------------------------------
水一下:
飞燕姐还没睡 还是起的早2007-10-25 1:0:00
[此贴子已经被作者于2007-10-25 1:04:33编辑过]
----------------解决方案--------------------------------------------------------
呵呵.不能怪它,截的图片太大,就会很不清楚.
随心 高精度是指要保证得到结果的每一位都是精确(貌似用准确更好)的.
----------------解决方案--------------------------------------------------------
哦,学习了.只是这么大而精的数,在现实生活中有应用的价值吗?
----------------解决方案--------------------------------------------------------
呵呵,很多东西在现实里没有什么意义的。
你说求素数,完数之类的有什么应用价值。
即使是迷宫求解,那也只是作为一种指导。
----------------解决方案--------------------------------------------------------
比起雨中飞燕的那个四行代码斑竹这个容易理解多了..
PS:不怕笑话那四行我到现在还没有怎么明白
----------------解决方案--------------------------------------------------------
呵呵,很多东西在现实里没有什么意义的。
你说求素数,完数之类的有什么应用价值。
即使是迷宫求解,那也只是作为一种指导。
同意...顺便问一下有没有人会那个高精度乘以高精度的传说中的FFT算法...
----------------解决方案--------------------------------------------------------
飞燕和孔明的阶乘代码,在哪里可以找到啊?
----------------解决方案--------------------------------------------------------