• A. Olesya and Rodion


    题目链接:http://codeforces.com/problemset/problem/584/A

    题目的大致题意就是: 求一个n位数,这个n位数可以被t整除

    这题其实是个非常水的题目,但是我的思想出错了:

    我的想法是:

    因为是n位数,那么我从10^(n-1) -> 10^(n) 开始遍历,如果出现了一个能被t整除的就break

    但是用算法实现的话这个思想很容易爆数据,所以遇到大的数据我的代码就WA了

    后来就重新想了一个思路:

    首先,看看数据范围:

    ( 1<=n<=100,2<=t<=10 )(1<=n<=100,2<=t<=10)

    我们可以发现,tt的取值有两种情况

    1.一位数(2,3,4,5,6,7,8,9)
    2.两位数(仅有10)

    分别讨论:


    第一种情况,我们可以知道某个数乘以10^x是可以被x整除的

    如30000能被3整除

    利用这个特性,对于这种情况我们就有解决方案了,先输出t,再输出n-10


    第二种情况,看似这种情况只需要按照上一个的结论套进来,改成输出n2个0就行了

    可你要知道,题目上叫你不行的时候输出-1这不是废话

    假如n=1,t=10那就不对劲了

    这个特例需要输出1

    其它状况就还是差不多的结论

    AC代码:

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <cstdbool>
    
    using namespace std;
    
    int main(){
        int n,t;
        cin>>n>>t;
        if(t==10)//分类讨论
        {
            if(n==1) 
                cout<<-1;//特判
            else
            {
                cout<<1;
                for(int i=1;i<n;i++) 
                    cout<<0;
            }
            cout<<endl;
            return 0;
        }
        cout<<t;
        for(int i=1;i<n;i++)
            cout<<0;
        cout<<endl;
        return 0;
    }
  • 相关阅读:
    git 每次push和pull都需要提交密码
    git push时报错refusing to merge unrelated histories
    打包时,node内存溢出问题解决方法
    dva中roadhog版本升级后带来的问题及解决方法
    Android
    Python Model : glob 文件路径查找
    Tools info
    Python class
    Life Info
    Char 10 格式化及如何正确使用
  • 原文地址:https://www.cnblogs.com/-Ackerman/p/11090144.html
Copyright © 2020-2023  润新知