回文二进制数

测试数据来自 system/1655

作业已超过截止时间,您无法递交本题目。

时间限制:1秒  内存限制:256M


【问题描述】

  回文二进制数是指从左向右念和从右向左念都一样的数。如 11011 就是一个典型的回文二进制数。现在给定两个整数 \(m\) 和 \(n\),那么在所有的 \(m\) 位的二进制数中(不含前导 0),含有 \(n\) 个数字 1 最大的回文二进制数对应的十进制数是多少?

  比如:\(m=6,n=4\) 时,在 6 位二进制数中含有 4 个 1 的最大回文二进制数是 110011,对应的十进制数为 51。

  再如:\(m=5,n=3\) 是,在 5 位二进制数中含有 3 个 1 的最大回文二进制数是 10101,对应的十进制数为 21。

  当然也有不存在解的情况,比如 \(m=6,\ n=3\)时,就不存在这样的回文数二进制数。

【输入格式】

  输入仅一行两个整数,第一个是整数 \(m\),第二个数整是 \(n\)。

【输出格式】

  输出包含一行,如果不存在解,则输出None,否则输出最大的回文二进制数对应的十进制数。

【输入输出样例1】

 Input

6 4

 Output

51

【输入输出样例2】

 Input

5 3

 Output

21

【输入输出样例3】

 Input

6 3

 Output

None

【数据说明】

  对于 \(100\%\) 的数据 \(1≤n≤m≤63\)。

【来源】

  Mr.he

位运算及其运用

未认领
状态
已结束
题目
9
开始时间
2023-12-17 00:00
截止时间
2024-01-06 23:59
可延期
24.0 小时