XidianOJ 1019 自然数的秘密

题目描述

题意: 已知:N!=N*(N-1)*...*2*1 找到最小自然数 N, 使N!末尾有连续 M个零. 例如, 5! 的结尾包含1个零.

输入

第一行输入一个整数T,表示有T组测试数据。 对于每组测试数据,输入一个整数M,表示包含M个零。(0<=M<=10^8)

输出

每组数据,输出一行满足条件的最小自然数N。 如果无解,输出“No solution”。(不含引号)

--

正文

对于n!,可以算出他末尾的0

10!零的个数可以由这样算出10/5=22/5=00的个数就是2+0=2,再来个例子,20082008/5=401401/5=8080/5=1616/5=30的个数就是401+80+16+3=500个零

在一个肯定ok的范围内二分找就好

#include <cstdio>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;

typedef long long LL;
#define MAXN 500000000
LL f(LL n){
    LL res = 0;
    while (n >= 5) {
        n /= 5;
        res += n;
    }
    return res;
}

LL findm(LL left,LL right,LL m){
//    printf("%lld %lld\n",left,right);
    if (left == right){
        if (f(left) != m)
            return 0;
        else
            return left;
    }
    if (left == right - 1){
        if (f(left) != m){
            if (f(right) != m){
                return 0;
            }
            else return right;
        }
        else
            return left;
    }
    LL mid = (left+right)/2;
    LL fmid = f(mid);
    if ( m > fmid ){
        return findm(mid,right,m);
    }
    else
        return findm(left,mid,m);
}

int main(){
    int time,T;
    scanf("%d",&T);
    for (time=1;time<=T;time++){
        LL m;
        scanf("%lld",&m);
        LL res = findm(1,MAXN,m);
        if (res == 0){
            printf("No solution\n");
        }
        else printf("%lld\n",res);
    }
    return 0;
} 
时间: 2024-10-12 20:03:44

XidianOJ 1019 自然数的秘密的相关文章

【集合论】 02 - 集合与自然数

1. 公理系统 先来看看康托尔对集合的定义:“一个集合是我们知觉中或理智中的.确定的.互不相同的事物的一个汇集,被设想为一个整体”.尽管康托尔本人已经建立起了相当广泛而深刻的集合理论,但对于集合本身的定义却还是含糊的,他的理论被称为“朴素集合论”(Native Set Theory).虽然试图描述集合的每个属性,但其中“汇集”.“整体”等词其实是和“集合”等价的.定义的含糊使得各种悖论趁虚而入,这也成为反对者们的主要攻击目标.之后,策梅洛(Zermelo)为集合建立了一套公理化系统,并由弗兰克尔

自然数的公理化理论体系定义的新方法

目前,我们人类可通过皮亚诺的五个命题和在此基础上的三个公理来定义自然数的公理化理论体系. 现在,我们用π来定义自然数的公理化理论体系. 几年前,美国人用2π代替π,看起来,似乎已经非常的完美了. 我也比较认同这个看起来似乎已经非常完美的想法,但是,为了力求数学的简洁美,我还是比较喜欢用π来说明圆的普适规律. 基于这个前提,我们用π来重新定义自然数的公理化理论体系. 设:1=π(1,表示万物的存在性,在新的自然数的公理化理论体系中,用π来表示万物的存在性) 设:新的自然数的公理化理论体系中,自然数

如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合?Java/JavaScript/C/Python耗时对比

如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a.b.c可能的组合? 不考虑算法优化,一千万次循环计算判断 Java/JavaScript/C/Python 多次测试耗时对比. Java 单次总耗时957毫秒 import java.util.Date; public class algorithm { public static void main(String[] args) { long start = new Date().getTime()

codevs 2549 自然数和分解

时间限制: 1 s 空间限制: 32000 KB 题目等级 : 白银 Silver 题目描述 Description 把自然数N分解为若干个自然数之和,输出方案数. 输入描述 Input Description N,(1≤n≤50) 输出描述 Output Description 方案数 样例输入 Sample Input 5 样例输出 Sample Output 7 数据范围及提示 Data Size & Hint 5 可分为 1 1 1 1 11 1 1 21 1 31 2 21 42 35

[从产品角度学EXCEL 03]-单元格的秘密

这是<从产品角度学EXCEL>系列——单元格的秘密. 前言请看: 0 为什么要关注EXCEL的本质 1 EXCEL是怎样运作的 2 EXCEL里的树形结构 或者你可以去微信公众号@尾巴说数 获得连载目录. 本文仅由尾巴本人发布于特定网站.不接受任何无授权转载,如需转载,请先联系我,非常感谢. 在讲了excel的树形结构之后,我们终于要进入正题,研究单元格的秘密了. 当我们打开excel的时候,首先映入眼帘的就是一大片格子,这就是单元格. 在excel里,单元格承担了几乎所有的存储信息的功能.你

探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密

原文:探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密 下面的图片是我使用firefox和chrome浏览百度首页时候记录的http请求 下面是firefox: 下面是chrome: 在浏览百度首页前我都将浏览器的缓存全部清理掉,让这个场景最接近第一次访问百度首页的情景. 在firefox的请求瀑布图里有个表现非常之明显:就是javascript文件下载完毕后,有一段时间是没有网络请求被处理的,这段时间过后http请求才会接着执行,这段空闲时间就是所谓的http请求被阻塞

HR不会告诉你的秘密

原文转载自http://blog.csdn.net/happy08god/article/details/5534326 下面,只是摘出来一些基本的观点. 1. 入职时的工资高低不重要,只要你努力工作,就会得到相应的待遇 刚入职时,你的工资就是你的全部(销售岗位之类的除外),入职之后,大部分待遇都会跟着你的工资而浮动,调整也是基于目前的基数乘以一定的百分比,保险.公积金也和工资有关系. 所以,找工作时,千万不要心软,多争取一些基本工资,这是你刚入职时的所有. 2. 人事部不是你倾诉的对象,当问起

Java异常处理机制的秘密

一.结论 这些结论你可能从未听说过,但其正确性是毋庸置疑的,不妨先看看: 1.catch中throw不一定能抛回到上一层,因为finally中的return会抑制这个throw2.finally中throw一定能抛回上一层,因为此时其后的return不会被执行到(throw中断了正常的顺序流)3.在try/catch中return并不会直接返回上一层,而是先执行finally再返回 二.一段小程序 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

宅男网站架设的日常:安安的大尺度秘密私拍

公司白领安安,更大尺度视频版来了!在视频中真正完全的360° 无死角大尺度天性解放,傲人身材全面展示...臀部浑圆有肉,更有弹性,再次强力吐血推荐啊... 完整视频:安安的大尺度秘密私拍 悦色(yuese.in)是一个原创素人性感自拍,私拍,街拍分享平台,旨在邀请大家来共同发现和记录生活中的撩人悦色. 悦色官方网址:悦色 微信公众号:悦色阑珊(yuese3p) 玩家QQ群:悦色阑珊(235039743) 悦妹QQ:2497709343