1089: 阶乘的最高位
题目描述
输入一个正整数n。输出n!的最高位上的数字。
输入
输入一个正整数n(n不超过1000)。
输出
输出n!的最高位上的数字。
样例输入 Copy
1000
样例输出 Copy
4
提示
注意double类型溢出问题。
代码
#include<iostream>
using namespace std;
int main()
{
int n;
double sum=1.0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
sum*=i;
while(sum>10)
{
sum/=10.0;
}
}
printf("%d",(int)sum);
return 0;
}
注意
%.0lf 与 %d,(int)(double数)的区别
%.0lf会四舍五入,而%d不会