当前位置: 代码迷 >> C语言 >> 阶乘问题
  详细解决方案

阶乘问题

热度:371   发布时间:2008-04-05 23:24:13.0
阶乘问题
大家好!我想写一个阶乘的程序!

代码如下
程序代码:
/* 阶乘*/

#include
#include
int main(void)
{
long int n;
long int s;
long int j;
printf("请输入n!");
scanf("%ld",&n);


for(j=n;j<0;j-- )
{
j=n*j;
}

printf("阶乘值为",j);


getch();


}


但是有问题!
请改正!

如果可以请快一些!
搜索更多相关的解决方案: 阶乘  int  long  include  void  

----------------解决方案--------------------------------------------------------
/* 阶乘*/

#include <stdio.h>
#include <conio.h>
int main(void)
{
  long  int n;
  long  int s;
  long  int j;
  printf("请输入n!");
  scanf("%ld",&n);
  
  
  for(j=n;j<=0;j--)
  {
    s=n*j;
  }
  
  printf("阶乘值为",s);
  
  
  getch();
   
   
}

我改了!
还是不行!
----------------解决方案--------------------------------------------------------
/* 阶乘*/

#include <stdio.h>
#include <conio.h>
int main(void)
{
  long  int n;
  long  int s;
  long  int j;
  printf("请输入n!");
  scanf("%ld",&n);
  
  
  for  (j=n;j<=0;j--)
  {
    s=n*j;
    printf("%ld",s);
    getch();
  }
  
  printf("阶乘值为",s);
  
  
  getch();
   
   
}

还是步型啊!
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <conio.h>
int main(void)
{
  long  int n;
  long  int s;
  long  int j;
  long  int p;
  printf("请输入n!");
  scanf("%ld",&n);
  
  p=n;
  for  (j=n;j<=0;j--)
  {
    s=p*j;
    printf("%ld",s);
    getch();
  }
  
  printf("阶乘值为",s);
  
  
  getch();
   
   
}

疯了!
----------------解决方案--------------------------------------------------------
求助啊!
----------------解决方案--------------------------------------------------------
程序代码:
#include <stdio.h>
#include <conio.h>
int main(void)
{
    int n,j;
    long int s=1;
    printf("请输入n:");
    scanf("%d",&n);
         while(n>31 || n<0)
    {
        printf("ERROR!重新输入n:");
        scanf("%d",&n);
    }
    for(j=n;j>0;j-- )
    {
        s*=j;
    }
    printf("%d的阶乘值为%ld",n,s);
    getch();
}


[[it] 本帖最后由 now 于 2008-4-6 00:19 编辑 [/it]]
----------------解决方案--------------------------------------------------------
/*
  10000以内的阶乘,快速计算,1s内出解
  E-mail: sunkai [at] msn [dot] com
  Author: SunKai                  
  Blog:   http://www.cppblog.com/sunkai
*/
程序代码:
#include<stdio.h>
unsigned x[8000]={0},n,p,i,j,t;
int main()
{
    while(scanf("%d",&n)!=EOF)
    {
      x[p=7998]=1;
      for(i=1;i<=n;i++)
      { x[--p]=x[--p]=0;
        for(j=7998;j>p;j--) {x[j]*=i; t=j+1; x[j]+=x[t]/100000; x[t]%=100000; }
        while(!x[p]) p++;
      } for(printf("%u",x[p++]);p<7999;p++) printf("%05u",x[p]); printf("\n");
    }
    return 0;
}

----------------解决方案--------------------------------------------------------
太高深了,看不懂啊。
----------------解决方案--------------------------------------------------------
j>0;才对~~
----------------解决方案--------------------------------------------------------
孔明 谢谢啊!
----------------解决方案--------------------------------------------------------
  相关解决方案