当前位置: 代码迷 >> 综合 >> ZQOJ 089: 阶乘的最高位
  详细解决方案

ZQOJ 089: 阶乘的最高位

热度:21   发布时间:2024-01-25 22:27:58.0

参考于 https://blog.csdn.net/scanf_you/article/details/95393228

这个题目特别要注意溢出问题!!!


题目描述

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

输入

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

输出

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

样例输入

1000

样例输出

4

提示

注意double类型溢出问题。

 

#include<stdio.h>

int main()

{

    int n;

    long long sum = 1;

 

    scanf("%d", &n);

 

    for (int i = 1; i <= n; i++)

    {

        sum = sum * i;

        while (sum >= 100000000)

        {

            sum /= 10;

        }

        

    }

 

    while (sum >= 10)

    {

        sum /= 10;

    }

    printf("%lld\n", sum);

 

    return 0;

}