算法系列—计算阶乘

来源:互联网 发布:信鸽分类信息软件 编辑:程序博客网 时间:2024/05/29 02:25

计算阶乘,模拟手算,分组输出。

#include <stdio.h>#include <stdlib.h>#include <memory.h>int arr[1000];void fun(int n){int i, j, k, temp, count = 0;for (i = 1; i <= n; i++){for (j = 0; j <= count; j++){arr[j] *= i;}for (k = 0; k < j; k++){if (arr[k] > 10000){temp = arr[k] / 10000;arr[k] = arr[k] % 10000;arr[k + 1] += temp;if (k + 1 == j)count = j;}}}printf("%d! = ", n);if (arr[count] > 0)printf("%d ", arr[count]);for (i = count - 1; i >= 0; i--){printf("%04d ", arr[i]);}printf("\n");}void main(void){// testint test_data[] = { 1,2,3,4,5,6,7,8,9,10,30,40,50,500,1000 };for (int i = 0; i < sizeof(test_data) / sizeof(int); ++i){memset(arr, 0, sizeof(arr));arr[0] = 1;fun(test_data[i]);}system("pause");}

0 0
原创粉丝点击