1 条题解

  • 0

    完全自己做
    尽管老师上课讲过

    #include<bits/stdc++.h>
    #define int long long 
    using namespace std;
    int n;
    string jz(int n)
    {
        string ret="";
        while(n)
        {
            ret+='0'+n%2;
            n/=2;
        }
        string t=ret;
        for(int i=t.size()-1;i>=0;i--)
        {
            ret[t.size()-1-i]=t[i];
        }
        for(int i=0;i<ret.size();i++)
        {
            if(ret[i]=='1')break;
            ret[i]=0;
        }
        return ret;
    }
    bool hw1(int a)
    {
        if(a<10)return 1;
        int t=a,s=0;
        while(a)
        {
            s=s*10+a%10;
            a/=10;
        }
        return (s==t);
    }
    bool hw2(string s)
    {
        for(int i=0,j=s.size()-1;i<s.size();i++,j--)
        {
            if(s[i]!=s[j])
                return false; 
        }
        return true;
    }
    signed main()
    {
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            string t=jz(i);
            if(hw1(i)&&hw2(t))
            {
                cout<<i<<':'<<t<<endl;
            }
        }
        return 0;
    }
    
    
  • 1

信息

ID
1787
难度
8
分类
(无)
标签
递交数
11
已通过
5
通过率
45%
被复制
4
上传者