回 帖 发 新 帖 刷新版面

主题:一个想了3天3夜没想出来的问题

[em10]这个问题就是怎么编程算出1到100的阶乘?那为老师能告诉我该怎么实现么?[em18]

回复列表 (共27个回复)

沙发

这个 问题想了3天3夜! 无语!!

楼主要使用什么语言呀!!

板凳

不会吧!比我还菜~~??

3 楼

我告诉你也
记得给我评分哦
很简单的拉
//我这里用的C++哦
//本程序用来解决100的阶乘问题
//程序编辑时间 2005 6 7
//编写人 东风破 :)
#include "iostream.h"
void main()//我这里直接用主函数写了哦.如果想用函数写也行的,自己改下哈.
{
int i;
double sum=1;//sum用来存储N!的值.这里必须要用到double哦,
           //如果是long 类型的话,那么到大概98的样子就溢出了哒.
for(i=1;i<=100;i++)
sum=sum*i;
cout << "100的阶乘为 :" << sum <<endl;//cout 是C++里面的拉,如果你用C的话
                                      //那么用printf("%lf\n",sum);就好,但是
                                      //在C里面不要#include "iostream.h"这个
}
但是如果你想求更多的,比如说求3! 或许其他的
可以这样子
//我这里用的C++哦
//本程序用来解决N!问题
//程序编辑时间 2005 6 7
//编写人 东风破 :)
#include "iostream.h"
void main()//我这里直接用主函数写了哦.如果想用函数写也行的,自己改下哈.
{
int i;
double sum=1;//sum用来存储N!的值.这里必须要用到double哦,
           //如果是long 类型的话,那么到大概98的样子就溢出了哒.
int n;//是用来存储N的,就是说你想求的是N的阶乘.
cout << " 请输入你想求的阶乘 : " << endl;
cin >> n; //用C就是scanf("%d",&n);
for(i=1;i<=n;i++)//很多人在这里有一条语句if(n==0) ....
sum=sum*i;      //我个人觉得没什么必要的拉.呵呵.为什么呢,自己想吧.
cout << n <<"的阶乘为 :" << sum <<endl;
}
详细吧,兄弟们给我评分.

4 楼

个人觉得我们应该养成良好的回帖习惯
不要什么东西都无所谓的样子.
以为写个程序出来就有什么了不起
老实说
对于没有注释的玩意
我看都不会看一眼
简直在浪费我的生命

5 楼

0分!早就溢出了,你知道不知道

6 楼

精度不够哈,才几位有效数字

7 楼

放在一个一维数组里

8 楼

呵呵,要精确到个位必须要用到大数类。
否则……偶有一个很垃圾的办法:
#include<math.h>
#include<iostream.h>
void main()
{
   double sum=0.0,a;
   for(a=1.0;a<=100;a++)
      sum+=log10(a);
   sum=pow(10.0,sum);
   cout<<sum;
}
呵呵很阴险的吧

9 楼

3楼兄弟
能告诉我:
100!的阶乘是多大吗?

10 楼

用循环吧(可能有点慢)
或是递归算法

我来回复

您尚未登录,请登录后再回复。点此登录或注册