• SDIBT 2345 (3.2.1 Factorials 阶乘)


    Description

    N的阶乘写作N!表示小于等于N的所有正整数的乘积。阶乘会很快的变大,如13!就必须用32位整数类型来存储,70!即使用浮点数也存不下了。你的任务是找到阶乘最后面的非零位。举个例子,5!=1*2*3*4*5=120所以5!的最后面的非零位是2,7!=1*2*3*4*5*6*7=5040,所以最后面的非零位是4。

    Input

    共一行,一个整数不大于4,220的整数N。

    Output

    共一行,输出N!最后面的非零位。

    Sample Input

    7
    

    Sample Output

    4

     1 #include <stdio.h>
     2 
     3 int main()
     4 {
     5     int n,date[5000],cnt=0;
     6     int i,sum=1;
     7     scanf("%d",&n);
     8     for(i=n; i>=1; i--)
     9     {
    10         date[i]=i;
    11         while(date[i]%5==0)  //剔除5
    12         {
    13             date[i]/=5;
    14             cnt++;
    15         }
    16     }
    17     for(i=n; i>=1; i--)     //剔除同样多的2,这样就不会出现10了
    18     {
    19         if(cnt==0)
    20             break;
    21         while(date[i]%2==0&&cnt!=0)
    22         {
    23             date[i]/=2;
    24             cnt--;
    25         }
    26     }
    27     for(i=n; i>=1; i--)
    28      sum=(sum*date[i])%10;
    29     printf("%d
    ",sum);
    30     return 0;
    31 }
    View Code
  • 相关阅读:
    字符串
    Flume集群搭建
    hbase测试搭建
    hadoop2.0测试环境安装
    kafka集群报错
    kafka集群安装
    hadoop环境配置
    zookeeper安装
    虚拟机时间同步14 Aug 04:09:18 ntpdate[2941]: no server suitable for synchronization found
    python numpy中数组.min()
  • 原文地址:https://www.cnblogs.com/cxbky/p/4805051.html
Copyright © 2020-2023  润新知