hdu 1124 数论

题意:求n!中末尾连续0的个数  其实就是2*5的个数

30! 中有5 10 15 20 25 30  是5的倍数有6个   6=30/5;

6/5=1; 这个1 为25

5  10 15 20  25  30 35 40 45 50 55 60  65 70 75 80 
85 90 95 100      100/5=20;

25
              
     50
              
    75
                   
100       20/5=4;    有4个25

以此类推

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

#include<iostream>

using
namespace std;

int main()

{

    int
n;

    int
t,d;

    int
sum;

    scanf("%d",&t);

    while(t--)

    {

        sum=0;

        scanf("%d",&n);

        sum=n/5;n=sum;

        while(n/5!=0)

        {

            sum+=n/5;

            n=n/5;

        }

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

    }

    return
0;

}

hdu 1124 数论,码迷,mamicode.com

时间: 2024-10-26 17:58:21

hdu 1124 数论的相关文章

hdu 4542 数论 + 约数个数相关 腾讯编程马拉松复赛

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4542 小明系列故事--未知剩余系 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 889    Accepted Submission(s): 207 Problem Description "今有物不知其数,三三数之有二,五五数之有三,七七数之有

hdu 3641 数论 二分求符合条件的最小值数学杂题

http://acm.hdu.edu.cn/showproblem.php?pid=3641 学到: 1.二分求符合条件的最小值 /*==================================================== 二分查找符合条件的最小值 ======================================================*/ ll solve() { __int64 low = 0, high = INF, mid ; while(low <=

hdu 1124

题意:求N!中末尾0的个数 其实就是5的个数 因为2*5=10 肯定n中2的个数比5的个数多#include<iostream> using namespace std; int main() { int n; int t,d; int sum; scanf("%d",&t); while(t--) { sum=0; scanf("%d",&n); sum=n/5;n=sum; while(n/5!=0) { sum+=n/5; n=n/

hdu 4961 数论 o(nlogn)

Boring Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 60    Accepted Submission(s): 30 Problem Description Number theory is interesting, while this problem is boring.   Here is the probl

hdu 1299 数论 分解素因子

题意:求1.1/x+1/y=1/z 给定z 求x,y的个数zsd:1: 要知道这个素数的因子的范围 范围为2--sqrt(n);2: 带入方程得:x = n * n / k + n ; 现在就变成了求x的值.又因为n一定大于k,所以转换成求n * n的分解数: 因为n = p1 ^ e1 * p2 ^ e2 *..........*pn ^ en sum ( n)= ( 1 + e1 ) * ( 1 +e2 ) * .........* ( 1 +en ); sum (n * n) = ( 1

hdu 1104 数论+bfs

题意:给n,m,k;输出n经过+-*%后(n%k+k)%k==((n+1)%k)%k  输出最小路径与运算副 zsd:% 只是求余数 有正负 mod 是求模 无正负. yhd:对m*k求余对 对k求余不对 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 5

hdu 1005 数论 循环

给定 ab 与飞 f1 f2 求f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 分析: 1 因为mod7   0<=f(n)  &&f(n)<=6  有7种取值 2 f(n-1) 与f(n-2) 共有49种组合 所以找到循环取值即可 Problem : 1005 ( Number Sequence ) Judge Status : Accepted RunId : 9085676 Language : G++ Author : xiaon

HDU 1124 Factorial (数论)

http://acm.hdu.edu.cn/showproblem.php? pid=1124 題目好長好長,好可怕,看完腎都萎了,以後肯定活不長.我可不能死在這種小事上,小灰灰我勵志死在少女的超短裙下~~~哈哈,所以我就猥瑣的叫 旁邊的小師妹幫我翻譯了,我是不是非常禽獸,嘻嘻~~~ 題目大意呢,就是給一個數,要你求出它的階乘的得到的結果後面有幾個0. 解析: 一看就是簡單數論啦.跟數因子有關.最小素因子并且相乘能得到10的(就是後面有0的)就是2*5啦.因為一個數的階乘2的因子明顯比5的因子要

HDU 1124 Factorial(简单数论)

Factorial Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4237    Accepted Submission(s): 2805 Problem Description The most important part of a GSM network is so called Base Transceiver Station