《小米筆試》求任意數的階乘
阿新 • • 發佈:2018-11-22
這是筆試的第二題,求任意數的階乘其實實質也就是大數相乘,很可惜沒有在規定時間內完成這道題,估計這次筆試涼涼。
#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;
}