reverse() 字符串反转
2026-07-15 11:42:30
发布于:湖北
18阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int main(){
int n, ans = 0;
cin >> n;
string s;
for(int i = 1; i <= n; i++){ // 题目要求正整数,从1开始
int m = i;
s = "";
// 转换为二进制字符串(不含前导零)
while(m){
s += char((m%2)+'0');
m /= 2;
}
string t = s;
// 注意:上面的循环得到的是逆序的二进制,但回文判断时需要原顺序
// 这里我们直接检查字符串与其逆序是否相等
reverse(t.begin(), t.end());
if(s == t){
ans ++;
}
}
cout << ans;
return 0;
}
这里空空如也



有帮助,赞一个