程序实例:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
/************************************************/
// 程序名称:array.cpp // 程序目的:设计一个可容纳40位数的求n!程序 // 运用数组创造出可存更大是数字空间 // 来源:数据结构(c语言版)page-32 /************************************************/ #include <stdio.h> int main(void) { int data[41]; // 存储40位数的整数数组 int digit; // 数据位数变量 int i, j, r, k; // 循环计数 int N; // 用户输入的值 for (int i = 0; i < 41; i++) { // 将数值初始化为0 data[i] = 0; } data[0] = 1; // 这里及以后data[0]的值均未使用 data[1] = 1; digit = 1; printf("Enter a number what you want to calculus:"); scanf("%d", &N); // 读取用户欲求的N值 for (i = 1; i < N+1; i++) { for (j = 1; j < digit+1; j++) data[j] *= i; for (j = 1; j < digit+1; j++) { if (data[j] > 10) { for (r = 1; r < digit+1; r++) { if (data[digit] > 10) digit++; data[r+1] += data[r]/10; data[r] = data[r] % 10; } } } printf("%d! = ", i); for (k = digit; k > 0; k--) { printf("%d", data[k]); } printf("\n"); } return 0; } |