注册 登录
编程论坛 嵌入式开发

100的阶乘怎么写

星星的光芒 发布于 2014-12-17 20:07, 7286 次点击
100的阶乘怎么写
8 回复
#2
zklhp2014-12-17 21:21
100!=93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
#3
hu9jj2014-12-19 07:56
1*2*3......98*99*100
#4
_GAOYANG_2014-12-19 23:18
同求...
#5
_GAOYANG_2014-12-19 23:32
c++   递归   
#include<iostream>
using namespace std;
int jiecheng(int x)
{
    if(x==1) return 1;
    else return x*jiecheng(x-1);
}
int main()
{ int a;
cin>>a;
cout<<jiecheng(a)<<endl;
}
#6
殇回忆2014-12-20 17:02
#define MAXLEN 300/*假设做的是300的阶乘,自己可修改*/
#define MAXSUM 300/*用来存放阶乘结果的数组最大长度*/
#include <stdio.h>
#include <math.h>
main()
{
 int i,j,k,n,sum,s;
 int a[MAXSUM];
 for(i=0;i<MAXSUM;i++)
 {
 a[i]=0;
 }//数组赋初值
        a[0]=1;
        for(i=1;i<=MAXLEN;i++)
        {
                for(j=MAXSUM-1;j>=0;j--)
                {
                        if(a[j]!=0)
                        {
                                n=j+1;
                                break;
                        }
                }//确定阶乘结果保存到数组中,存到数组的第几个元素
             for(k=0;k<n;k++)
                {
                        a[k]=a[k]*i;
                }//对存入数组中的数进行乘法运算
                for(k=0;k<n;k++)
                {
                        sum=a[k];
                        if(sum/100>0)
                        {
                                a[k]=sum%100;
                                a[k+1]=a[k+1]+sum/100;
                        }
                }//乘法完成后进行进位
        }
                for(s=n;s>=0;s--)
                {
                if(a[s]>=10)
                printf("%d",a[s]);
                else printf("0%d",a[s]);
                }//打印完成的阶乘结果(由于03在数组中只显示3故进行相关操作补足
                printf("\n");
}
#7
Ffufu2014-12-30 11:53
//c语言
#include<stdio.h>
int main(void)
{
  int i,sum=1;
  for(i=1;i<=100;i++)
   sum*=i;
  printf("100!=%d/n",sum);
  return 0;
}
#8
wp2319572014-12-30 13:27
以下是引用Ffufu在2014-12-30 11:53:43的发言:

//c语言
#include<stdio.h>
int main(void)
{
  int i,sum=1;
  for(i=1;i<=100;i++)
   sum*=i;
  printf("100!=%d/n",sum);
  return 0;
}



这位同学不是开玩笑吧  回复别人的帖子(尤其是代码) 怎么的也得自己运行是合格的
#9
贺晋飞2015-01-07 11:41
#include<stdio.h>
#define MAX 100
int sum[200],len;
void rec(int n)
{
    int i;
    for(i=len;i>=0;i--)
        sum[i]*=n;
}
void add()
{
    int i=0;
    for(i=0;i<=len;i++)
        if(sum[i]>=10)
        {
            sum[i+1]+=sum[i]/10;         
            sum[i]=sum[i]%10;  
        }
    for(i=len;i>=0;i--)
        if(sum[i]!=0)
        {
            len=i;
            break;
        }
}
int main()
{
    int i;
    sum[0]=1;
    for(i=1;i<200;i++)
        sum[i]=0;
    for(i=2;i<=MAX;i++)
    {
        rec(i);
        len+=2;
        add();
    }
    for(i=len;i>=0;i--)
        printf("%d",sum[i]);
    return 0;
}
这样写清楚一点吧
1