《小米笔试》求任意数的阶乘

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Betterc5/article/details/82793330

这是笔试的第二题,求任意数的阶乘其实实质也就是大数相乘,很可惜没有在规定时间内完成这道题,估计这次笔试凉凉。

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

猜你喜欢

转载自blog.csdn.net/Betterc5/article/details/82793330
今日推荐