這是筆試的第二題,求任意數的階乘其實實質也就是大數相乘,很可惜沒有在規定時間內完成這道題,估計這次筆試涼涼。
#include<iostream>
using namespace std;int result[200] = { 0 };
int N;
void fun(int n) {int temp;int i;int carry=0;if (n == 1) {result[0] = 1;N = 1;}else {for (i = 0; i < N; i++) {temp = result[i] * n + carry;result[i] = temp % 10;carry = temp / 10;}while (carry) {result[i] = carry % 10;carry = carry / 10;i++;N++;}}
}int main() {int n;int i;cin >> n;for (i = 0; i < n; i++)fun(i+1);for (i = N - 1; i >= 0; i--)printf("%d", result[i]);printf("\n");system("pause");return 0;
}