2 条题解
-
1
202509zj06周子祥 (周子祥) LV 8 @ 2025-12-20 17:49:58
#include<bits/stdc++.h>
using namespace std;
string jz(int n)
{
string ret="";
if(n==0) return "0";
while(n)
{
ret+=('0'+n%2);
n/=2;
}
reverse(ret.begin(),ret.end());
int pos=0;
while(pos<ret.size()&&ret[pos]=='0') pos++;
if(pos==ret.size()) return "0";
return ret.substr(pos);
}
bool hw(string s) {
for(int i=0,j=s.size()-1;i<j;i++,j--)
{
if(s[i]!=s[j]) return false;
}
return true;
}
string to_str(int n)
{
string s="";
while(n)
{
s+=('0'+n%10);
n/=10;
}
reverse(s.begin(),s.end());
return s;
}int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
string dec_str=to_str(i);
string bin_str=jz(i);
if(hw(dec_str)&&hw(bin_str))
{
cout<<i<<':'<<bin_str<<endl;
}
}
return 0;
}改进//老师上课讲的 -
-2@ 2023-12-09 12:59:04
完全自己做
尽管老师上课讲过#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
- 难度
- 4
- 分类
- (无)
- 标签
- 递交数
- 34
- 已通过
- 17
- 通过率
- 50%
- 被复制
- 4
- 上传者