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