1. 程式人生 > >《小米筆試》求任意數的階乘

《小米筆試》求任意數的階乘

這是筆試的第二題,求任意數的階乘其實實質也就是大數相乘,很可惜沒有在規定時間內完成這道題,估計這次筆試涼涼。

#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; }