这个计算阶乘的算法叫什么?我也没怎么懂
/* factorial.cpp -- 利用数组计算阶乘 */#include <iostream>using namespace std;int main(void){ const int MAXSIZE = 100; int array[MAXSIZE]; int n; cout <<"n = "; cin >>n; int sum, sc; int i, j; for (i = 0; i < MAXSIZE; i++) array[i] = 0; array[0] = 1; for (i = 2; i <= n; i++) { sc = 0; for (j = 0; j < MAXSIZE; j++) { sum = array[j] * i + sc; // 上一次进位值和当前计算结果求和 sc = sum / 10; // 存放进位数值 array[j] = sum % 10; // 将余数存入对应数组元素 } } cout <<n <<"! = "; for (i = MAXSIZE - 1; i >=0; i--) cout <<array[i]; cout <<endl; return 0;}/* factorial.cpp -- 利用数组计算阶乘 */#include <iostream>using namespace std;int main(void){ const int MAXSIZE = 100; int array[MAXSIZE]; int n; cout <<"n = "; cin >>n; int sum, sc; int i, j, k; for (i = 0; i < MAXSIZE; i++) array[i] = 0; array[0] = 1; k = 1; for (i = 2; i <= n; i++) { sc = 0; for (j = 0; j < k; j++) { sum = array[j] * i + sc; // 上一次进位值和当前计算结果求和 sc = sum / 10; // 存放进位数值 array[j] = sum % 10; // 将余数存入对应数组元素 } if ( sc ) { array[k] = sc; k++; } } cout <<n <<"! = "; for (i = MAXSIZE - 1; i >=0; i--) cout <<array[i]; cout <<endl; return 0;}