题目描述

输入一个正整数n。输出n!的最高位上的数字。

输入

输入一个正整数n(n不超过1000)。

输出

输出n!的最高位上的数字。

样例输入

1000

样例输出

4

提示

注意double类型溢出问题。

代码

#include <stdio.h>
#include <math.h>
int main(){
    int n,i,t=0;
    double r=1.0;
    scanf("%d",&n);
    for (i = 1; i <=n ; i++) {
        r*=i;
        while(r>=100000)
        {
            r/=1000;
        }
    }
    t =(int)log10(r);
    t = r/(pow(10, t));
    printf("%d",t);
    return 0;
}
版权声明: 本博客所有文章除特别声明外,均采用署名-非商业性使用-相同方式共享 4.0 国际CC BY-NC-SA 4.0 )许可协议。转载请注明出处!
最后修改:2019 年 10 月 29 日 02 : 24 PM
如果觉得我的文章对你有用,请随意赞赏