这是笔试的第二题,求任意数的阶乘其实实质也就是大数相乘,很可惜没有在规定时间内完成这道题,估计这次笔试凉凉。
#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;
}