grjgrjgrjgrjgrj 2020-06-27 09:41 采纳率: 0%
浏览 212

一道C++程序题,求解!!?

蒟蒻第一次在C站来提问题,若觉本人垃圾,勿喷。

本人伸手党,不喜勿喷。

求神犇来解orz

题目描述
一个正整数如果正读与反读都一样则称为回文数。比如十进制232是回文,二进制11011也是回文。有些数十进制和二进制均为回文,称为双进制回文数。

例如:33,十进制下是回文数,转换成二进制为100001,也是回文。我们则称33为双进制回文数。

给定n,输出1-n之间所有的双进制回文数。

输入格式
一个正整数n

输出格式
输出1-n之间所有双进制回文数,每行一个,格式:十进制数:二进制数.

如:

5:101

717:1011001101

所有数按从小到大排列。

输入输出样例
样例1
输入样例 复制
20
输出样例 复制
1:1
3:11
5:101
7:111
9:1001

本人40分代码:
#include

using namespace std;

bool hw(int a) {

int b=0,temp=a;

while(a>0) {

    b*=10;

    b+=a%10;

    a/=10;

}

return b==temp;

}

bool rjz(int n) {

int i=0,l=0,flag=0;

int a[1000];

while (n!=0) {

    a[l++]=n%2;

    n=n/2;

}

for (i=0; i<l; i++) if (a[i]!=a[l-1-i]) {

        flag=1;

        break;

    }


if(flag==0) return true;

else return false;

}

int tra(int n) {

int p=1,y=0,yushu;

while(1) {

    yushu=n%2;

    n/=2;

    y+=yushu*p;

    p*=10;

    if(n<2) {

        y+=n*p;

        break;

    }

}

return y;

}

int main() {

int m;

cin>>m;

for(int k=1; k<=m; k++) {

    if(hw(k)==true&&rjz(k)==true) {

        cout<<k<<":"<<tra(k)<<endl;

    }

}

return 0;

}

求解

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 phython路径名过长报错 不知道什么问题
    • ¥15 深度学习中模型转换该怎么实现
    • ¥15 HLs设计手写数字识别程序编译通不过
    • ¥15 Stata外部命令安装问题求帮助!
    • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
    • ¥15 TYPCE母转母,插入认方向
    • ¥15 如何用python向钉钉机器人发送可以放大的图片?
    • ¥15 matlab(相关搜索:紧聚焦)
    • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
    • ¥15 Arduino无法同时连接多个hx711模块,如何解决?