求N的阶乘的最高位

来源:互联网 发布:windows apache https 编辑:程序博客网 时间:2024/06/07 01:28

题意:给你一个整数N,求N的阶乘的最高位是几。

数字太大,直接计算无法计算。这道题巧妙的运用了double小数的运算,每次相乘的时候,如果flag>=10,就来个循环每次除以10,将整数变成小数,每次移位,直到flag<10,然后继续进行阶乘运算。最后%0.f取整输出flag这个小数就行了。

#include<stdio.h>int main(){    double fact,n,i;    scanf("%lf",&n);    fact=1;    for(i=1;i<=n;i++)    {        fact=fact*i;        while(fact>=10)            fact=fact/10;    }    printf("%.0f",fact);    return 0;}

很简单的一道题,不过用到的方法很巧妙。


0 0
原创粉丝点击