0
已解决
屈子元
初级守护
初级守护
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s,s1="";
int pos=0;
cin>>s;
for(int i=s.size()-1;i>=0;i--)
{
pos+=(s[i]-'0')*pow(2,s.size()-i-1);
}
while(pos)
{
s1=(char)(pos%2+'0')+s1;
pos/=2;
}
for(int i=0;i<s1.size()/2;i++)
{
if(s1[i]!=s1[s1.size()-i-1])
{
cout<<"no";
return 0;
}
}
cout<<"yes";
return 0;
}
90分?
0
已采纳
叶子煊
中级光能
中级光能
题目说输入整数在int之内,你实在不放心可以开long long啊
所以你不需要定义输出字符串再转整形,太麻烦,并且有时候会有因素你考虑不到
多以直接定义输入整形即可(AC)
~~~~~~~~~~~~~~~~~~~~~~~~~
望采纳~~~
叶子煊在2019-07-18 00:41:29追加了内容
for(int i=s.size()-1;i>=0;i--)
{
pos+=(s[i]-'0')*pow(2,s.size()-i-1);
}
改为(所以说你代码能力不够)
for(int i=s.size()-1;i>=0;i--)
{
pos+=(s[i]-'0')*pow(10,s.size()-i-1);
}
即可
0