zoukankan      html  css  js  c++  java
  • 阶乘问题 n!后最右边非0的数

     阶乘问题

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 66  解决: 13
    [提交][状态][讨论版]

    题目描述

    也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如:
        12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001,600
    12的阶乘最右边的非零位为6。
        写一个程序,计算N(1<=N<=50,000,000)阶乘的最右边的非零位的值。
    注意:10,000,000!有2499999个零。

    输入

    仅一行包含一个正整数N。

    输出

    单独一行包含一个整数表示最右边的非零位的值。

    样例输入

    12
    

    样例输出

    6

    #include <cstdio>
    #include <algorithm>
    #define ll long long
    #define maxn 800010
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<< 1 | 1
    using namespace std;
    int s[100];
    int main(){
        int num,n,add,pai[4]={6,2,4,8};
        while(~scanf("%d",&n)){
            num=n;
            add=0;
            while(num){
                if(num%5==2){
                    add+=1;
                }
                else{
                    if(num%5==4)
                        add+=2;
                }
                add+=num/5;
                num/=5;
            }
            if(n>1){
                printf("%d
    ",pai[add%4]);
            }
            else printf("1
    ");
        }
    }
  • 相关阅读:
    iOS-导航条
    iOS-存储
    iOS-模型传递
    iOS-日期相关
    iOS-UIViewController
    iOS-loadView方法
    iOS-UIWindow
    Spring 测试
    Spring条件注解@Conditional
    Spring多线程
  • 原文地址:https://www.cnblogs.com/acmtime/p/5762883.html
Copyright © 2011-2022 走看看