| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 564 人关注过本帖
标题:[求助]300!
只看楼主 加入收藏
流浪者
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-4-24
收藏
 问题点数:0 回复次数:6 
[求助]300!
计算300的阶乘??~~~

谢!!!
2005-05-11 18:33
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 
方法倒是很简单,但是结果肯定非常非常大。

试问用什么类型来装结果呢?

欢迎加入 MVC 技术讨论群(新群:90093426)
2005-05-12 00:06
zhangzujin
Rank: 1
等 级:新手上路
帖 子:276
专家分:0
注 册:2005-5-9
收藏
得分:0 

对于n<=170的整数都可以. #include<stdio.h> #include<conio.h>

double fact(long n) { double fac; if(n==0) fac=1; else fac=n*fact(n-1); return fac; }

void main( ) { long n; printf("Input n:"); scanf("%ld",&n); printf("%ld!=%.0lf\n",n,fact(n)); getch( ); } 但对于大于170的整数整数则要应用字符串来解. 具体如何解有点思路,但是实习时出了点问题.以后再看吧.


太极之道 qq:283421560 E-mail:zhangzujin360732@
2005-05-12 12:56
流浪者
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-4-24
收藏
得分:0 
要精确解~~

我因我之为我而不同凡响~~~
2005-05-12 22:40
流浪者
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-4-24
收藏
得分:0 
我自己编了一个
大家看看
#include&lt;iostream.h&gt;
#define N 100000
int main()
{
 int a[N],m,n,i,j,w;
 a[0]=1;
 for(i=1;i&lt;N;i++)
  a[i]=0;
 cout&lt;&lt;"计算n!,请输入n"&lt;&lt;endl;
 cin&gt;&gt;n;
 for(i=1;i&lt;=n;i++)
 {
  w=0;
  for(j=0;j&lt;N;j++)
  {
   a[j]=a[j]*i+w;
   w=0;
   if(a[j]&gt;=10)
   {
    w=a[j]/10;
    a[j]=a[j]%10;
   }
  }
 }
 for(i=N-1;i&gt;=0;i--)
 {
  if(a[i]!=0)
  {
   m=i;
   cout&lt;&lt;"共"&lt;&lt;m&lt;&lt;"位"&lt;&lt;endl;
   break;
  }
 }
 cout&lt;&lt;n&lt;&lt;"!为: "&lt;&lt;endl;
 for(i=m;i&gt;=0;i--)
  cout&lt;&lt;a[i];
 cout&lt;&lt;endl;
 return 0;
}

我因我之为我而不同凡响~~~
2005-05-18 19:21
drcool
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-9-17
收藏
得分:0 
你需要一个大数乘运算历程。
2005-09-18 13:43
JavaBean
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2005-9-30
收藏
得分:0 
高精度 大整数相乘 用int数组存放结果撒
2005-10-03 14:01
快速回复:[求助]300!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036782 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved