平平无奇的编程萌新 2021-08-20 20:43 采纳率: 95.2%
浏览 277
已结题

[51nod]3410精妙数

小明正在研究趣味数学。如果一个正整数,它的二进制形式是个回文数,小明就会将它称为“精妙数”。如33,二进制形式为10001,则33是一个精妙数。

现在小明找到了T个数字,他想让你判断这些数是不是精妙数。是精妙数回答“Yes”,否则回答“No”。
输入格式
第一行输入一个数T,表示数字个数; 之后T行,每行输入一个数,表示每个数字。
输出格式
输出T行,每行一个字符串"Yes"或者"No",以空格隔开。
输入样例
3
44
33
22
输出样例
No
Yes
No
数据范围
对于100%的数据,1≤T≤100000,0≤每个数字≤10^9;

以下是我错误的代码(不造哪错了):

#include<iostream>
#pragma GCC optimize(2)
using namespace std;
inline int f(int a)
{
long long num=0,m=a,n[101],i=1;
 while(m)
 {
  n[i]=m%2;
  m/=2;
  i++;
 }
 for(int j=i-1;j>=1;j--)
  num=num*10+n[j];
 return num;
}
inline int r(int n)
{
 int t=n,num=0;
 while(t)
 {
  num=num*10+t%10;
  t/=10;
 }
 return num;
}
int main()
{
 int t,n;
 cin>>t;
 int a[t+1];
 for(int i=1;i<=t;i++)
  cin>>a[i];
 for(int i=1;i<=t;i++)
 {
  n=f(a[i]);
  if(r(n)==n)
   cout<<"Yes\n";
  else
   cout<<"No\n";
 }
 return 0;
}

  • 写回答

4条回答 默认 最新

  • aabyte 2021-08-20 21:51
    关注
    
    #include <iostream>
    using namespace std;
    int f(int x)
    {
        int i=0,a[200]= {0};
        while(x>0) //转二进制 
        {
            a[i]=x%2;
            x=x/2;
            i++;
        }
        for(int j=0; j<i/2+1; j++) //判断是否回文 
        {
            if(a[j]!=a[i-1-j])
                return 0;
        }
        return 1;
    }
    int main()
    {
        int T=0;
        cin>>T;
        int* p=new int[T];
        for(int i=0; i<T; i++)
            cin>>p[i];
        for(int i=0; i<T; i++)
        {
            if(f(p[i])==1)
                cout<<"Yes"<<endl;
            else
                cout<<"No"<<endl;
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月29日
  • 已采纳回答 8月21日
  • 创建了问题 8月20日

悬赏问题

  • ¥15 win2012 iscsi ipsec
  • ¥15 封装的 matplotlib animation 不显示图像
  • ¥15 python摄像头画面无法显示
  • ¥15 关于#3d#的问题:d标定算法(语言-python)
  • ¥15 cve,cnnvd漏洞扫描工具推荐
  • ¥15 图像超分real-esrgan网络自己训练模型遇到问题
  • ¥15 如何构建全国统一的物流管理平台?
  • ¥100 ijkplayer使用AndroidStudio/CMake编译,如何支持 rtsp 直播流?
  • ¥15 用js遍历数据并对非空元素添加css样式
  • ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)