本文共 1004 字,大约阅读时间需要 3 分钟。
// JieCheng.cpp : Defines the entry point for the console application.
/* 作者:成晓旭 时间:2001年10月3日(17:00:00-18:30:00) 内容:完成用长整数求取普通整数的阶乘*/#include "stdafx.h"
#include "stdlib.h"#define MAXLEN 100/*void GetJieCheng()求取整数的阶乘*/void GetJieCheng(int a[],int k){ int *b; int m,i,j,r,carry; m = a[0]; b = (int *)malloc(sizeof(int) * (m + 1)); for(i=1;i<=m;i++) b[i] = a[i]; for(j=1;j { for(carry=0,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; } free(b); a[0] = m; } /* void PrintJieCheng()显示整数的阶乘 */ void PrintJieCheng(int *a,int k) { int i; printf("%4d的阶乘 = ",k); for(i=a[0];i>0;i--) printf("%d",a[i]); printf("/n"); } int main(int argc, char* argv[]) { int a[MAXLEN],n,k; printf("请输入要求其阶乘的整数: "); scanf("%d",&n); a[0] = 1; a[1] = 1; PrintJieCheng(a,1); for(k=2;k<=n;k++) { GetJieCheng(a,k); PrintJieCheng(a,k); getchar(); } printf("/n/n应用程序正在运行....../n"); return 0; }
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=935655