zoukankan      html  css  js  c++  java
  • 2017多校合练1

    题目

    原题链接
    Add More Zero

    Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
    Total Submission(s): 0 Accepted Submission(s): 0

    Problem Description
    There is a youngster known for amateur propositions concerning several mathematical hard problems.

    Nowadays, he is preparing a thought-provoking problem on a specific type of supercomputer which has ability to support calculations of integers between 0 and (2m−1) (inclusive).

    As a young man born with ten fingers, he loves the powers of 10 so much, which results in his eccentricity that he always ranges integers he would like to use from 1 to 10k (inclusive).

    For the sake of processing, all integers he would use possibly in this interesting problem ought to be as computable as this supercomputer could.

    Given the positive integer m, your task is to determine maximum possible integer k that is suitable for the specific supercomputer.

    Input
    The input contains multiple test cases. Each test case in one line contains only one positive integer m, satisfying 1≤m≤105.

    Output
    For each test case, output “Case #x: y” in one line (without quotes), where x indicates the case number starting from 1 and y denotes the answer of corresponding case.

    Sample Input
    1
    64

    Sample Output
    Case #1: 0
    Case #2: 19

    Statistic | Submit | Clarifications | Back

    题意:问2^m-1有几位…

    思路:你会发现-1只有在 10的倍数时候位数才会发生变化 10-1 = 9, 100-1, 1000-1…2^m不可能出现这种数这里写链接内容,所以只考虑2^m有几位就好了…就是10的几次方, 取个log10, 答案就是m×log2;

    代码

    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<string>
    #include<algorithm>
    #include<iostream>
    #include<queue>
    #include<map>
    #include<math.h>
    #include<set>
    #include<stack>
    #define ll long long
    #define pb push_back
    #define max(x,y) ((x)>(y)?(x):(y))
    #define min(x,y) ((x)>(y)?(y):(x))
    #define cls(name,x) memset(name,x,sizeof(name))
    using namespace std;
    const int maxn=10e5+10;
    
    
    
    int main()
    {
        ll m;
        ll las=0;
        while(cin>>m)
        {
            ll k=(ll)m*log10(2);
            cout<<"Case #"<<++las<<": "<<k<<endl;
        }
        return 0;
    }
    
  • 相关阅读:
    31天重构学习笔记28. 为布尔方法命名
    .NET 技术社区之我见(中文篇)
    31天重构学习笔记26. 避免双重否定
    31天重构学习笔记25. 引入契约式设计
    31天重构学习笔记20. 提取子类
    31天重构学习笔记18. 使用条件判断代替异常
    31天重构学习笔记19. 提取工厂类
    31天重构学习笔记24. 分解复杂判断
    31天重构学习笔记23. 引入参数对象
    31天重构学习笔记17. 提取父类
  • 原文地址:https://www.cnblogs.com/bryce1010/p/9387453.html
Copyright © 2011-2022 走看看