清华大学机试 n的阶乘 Easy *注意范围,低于20用double longlong 高于用大数(具体表示范围在语言基础中)

基本思想:

老生常谈的问题,这种阶乘主要考察溢出。

用大数、long long、double可以解决;

关键点:

无;

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;


double fun(double n) {
	if (n == 1)
		return 1;
	double cnt = 1;
	while (n != 0.0) {
		cnt *= n;
		n--;
	}
	return cnt;
}

int main() {
	double n;
	while (cin >> n) {
		printf("%.0lf\n", fun(n));
	}
	return 0;
}

  

猜你喜欢

转载自www.cnblogs.com/songlinxuan/p/12446293.html