题目描述
输入一个正整数n。输出n!的最高位上的数字。
输入
输入一个正整数n(n不超过1000)。
输出
输出n!的最高位上的数字。
样例输入 Copy
1000
样例输出 Copy
4
#include<iostream>
#include<iomanip>
using namespace std;
int main() {
int n;
cin >> n;
double sum = 1.0;
for (int i = 1; i <= n; i++) {
sum *= i;
while (sum >= 10) {//防止double溢出(这一步非常重要)
sum = sum / 10;
}
}
cout <<(int)sum << endl;
return 0;
}
感谢我的老六舍友周瑞对我的帮助,解决了我一直出现double溢出的问题