n(n<100)的阶乘

原创 2004年09月05日 19:09:00

/************************************************************************/
/*    求n(n<100)的阶乘                                                  */
/*    用数组a存放结果其中数组的每一位存放一位数,a[0]存放当前结果的位数  */
/************************************************************************/

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define MAX 1000
/*已知 (n-1)!在数组a中, 求k! -------把(n-1)!再加上n-1次 */
void Factorial(int *a ,int n)
{
 int* b;
 int i,j,r;
 int m=a[0];
 int carry=0;

 b=(int*)malloc(sizeof(int)*(m+1));
        if(!b)
 {
  printf("malloc memory Error!/n");
  exit(0);
 }
 for(i=1; i<=m; i++)
 {
  b[i]=a[i];
 }

 for(j=1; j<n; j++)
 {
  for(i=1; i<=m; i++)
  {
   r=( i<=a[0] ? a[i]+b[i]: a[i] )+carry;
   a[i]=r%10;
   carry=r/10;
  }
  if( carry )
  {
   a[++m]=carry;
  }
  carry=0;
 }
 free(b);
 a[0]=m;
}

/*输出结果 */
void PrintResult(int *a, int n)
{
 int i;
 printf("%4d!=",n);
 for(i=a[0]; i>0; i-- )
 {
  printf("%d",a[i]);
 }
 printf("/n");
}

int main()
{
 int a[MAX];
 int n,k;
 printf("please input the number: /n");
 scanf("%d",&n);
 
 a[0]=1;
 a[1]=1;
        PrintResult(a,1);

 for(k=2; k<=n; k++)
 {
  Factorial(a,k);
  PrintResult(a,k);
 }
 getch();
        return 0;
}

用PHP实现n的阶乘--高精度算法

今天在IT届,最火的新闻莫过于李世石输给了alphago。看到新闻说,“围棋有361个落子点,所以下棋有10^171种可能。”然后我就突然想361的阶乘是多少呢?即361*360*359*358*.....
  • blakeFez
  • blakeFez
  • 2016年03月09日 20:27
  • 2773

求N的N阶乘的尾数(一道找规律的题目)

**一道超6的题目** 杭电1061Rightmost DigitProblem Description Given a positive integer N, you should output ...
  • zw1996
  • zw1996
  • 2016年04月24日 16:39
  • 1109

计算n阶乘中尾部零的个数

写在前面本来觉得问题挺容易的,不打算记录,谁知道一不小心,还真没做出来。最终凭借“朴实”的算法思想解决了问题,但是其中的曲折还真是汗颜。科学的思维指导确实必不可少,“野路子”的朴素的战斗理论不论是效率...
  • surp2011
  • surp2011
  • 2016年04月16日 15:17
  • 5044

阶乘计算 编写程序,对给定的n(n≦100),

  • 2011年06月22日 21:55
  • 21KB
  • 下载

求从1到n(手动输入)的阶乘 c++源代码

  • 2013年11月21日 20:53
  • 171B
  • 下载

精确计算N的阶乘

  • 2014年10月27日 13:40
  • 926B
  • 下载

VB 求n的阶乘

  • 2010年06月07日 13:50
  • 36KB
  • 下载

VC++求n的阶乘和

  • 2011年05月16日 20:11
  • 180B
  • 下载

Labview计算N的阶乘

  • 2014年09月09日 20:07
  • 7KB
  • 下载

求N的阶乘(使用汇编语言)

  • 2017年12月21日 14:30
  • 3KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:n(n<100)的阶乘
举报原因:
原因补充:

(最多只允许输入30个字)