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

爷,独闯天下 提交于 2020-03-09 03:37:30

基本思想:

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

用大数、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;
}

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!