1 条题解

  • 1
    @ 2019-01-20 09:01:16

    本题算法较简单,主要考验编程熟练度

    #include<iostream> 
    #include<string>
    #include<algorithm>
    #include<time.h> 
    using namespace std;
    string transform(int num,int base);
    bool judge(string s);
    int main()
    {
        int N,S;
        cin>>N>>S;
        int cnt=0;
        for(int num=S+1;;num++)
        {
            if(cnt>=N)  break;
            int c=0;
            for(int i=2;i<=10;i++)
            {
                if(judge(transform(num,i)))
                {
                    c++;
                }
                if(c>=2)
                {
                    cout<<transform(num,10)<<endl;
                    cnt++; 
                    break;
                }
            }
        }
        return 0;
    }
    
    string transform(int num,int base)//将十进制的num转成二进制并作为string返回 
    {
        if(base==10)    return to_string(num);
        else
        {
            string res;
            while(num!=0)
            {
                res+=to_string(num%base);
                num/=base; 
            }
            reverse(res.begin(),res.end());
            return res;
        }
    }
    bool judge(string s)//判断字符串s是否为回文 
    {
        string temp=s;
        reverse(temp.begin(),temp.end());
        return temp==s;
    }
    
  • 1

信息

难度
7
分类
(无)
标签
(无)
递交数
199
已通过
42
通过率
21%
被复制
4
上传者