回文二进制数

测试数据来自 system/1655

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


【问题描述】

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

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

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

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

【输入格式】

  输入仅一行两个整数,第一个是整数 mm,第二个数整是 nn

【输出格式】

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

【输入输出样例1】

 Input

6 4

 Output

51

【输入输出样例2】

 Input

5 3

 Output

21

【输入输出样例3】

 Input

6 3

 Output

None

【数据说明】

  对于 100%100\% 的数据 1nm631≤n≤m≤63

【来源】

  Mr.he

信息

ID
1281
难度
(无)
分类
数论 | 贪心 点击显示
标签
(无)
递交数
0
已通过
0
通过率
?
上传者