美文网首页
1 - 回文十进制数

1 - 回文十进制数

作者: changsanjiang | 来源:发表于2017-10-19 12:01 被阅读33次

如果把某个数的各个数字按相反的顺序排列, 得到的数和原来的数相同, 则这个数就是回文数. 例如: 12321 就是一个回文数.

问题

求用十进制, 二进制, 八进制表示 都是回文数的所有数字中, 大于十进制数10的最小值.

本例中的十进制数 9 小于 10, 因此不符合要求. 
例如: 9(十进制) = 1001(二进制数) 
              = 11(八进制数) 

思路

因为是二进制的回文数, 所以如果最低位为0, 那么相应地最高位也是0, 但是以0开头肯定是不恰当的, 由此可知最低位为1.
如果用二进制表示时, 最低位为1, 那么这个数一定是奇数, 因此只考虑奇数的情况就可以.
接下来就可以写简单地程序, 从 10 的下一个数字 11 开始, 按顺序搜索.

num = 11

while true
    decStr = num.to_s
    octStr = num.to_s(8)
    binStr = num.to_s(2)
    if decStr == decStr.reverse &&
        octStr == octStr.reverse &&
        binStr == binStr.reverse then
        puts "num = #{num}"
        break;
    end
    
    # 只搜索奇数 每次加2
    num += 2
end

答案

十进制 : 585
八进制 : 1111
二进制 : 1001001001

相关文章

  • 1 - 回文十进制数

    如果把某个数的各个数字按相反的顺序排列, 得到的数和原来的数相同, 则这个数就是回文数. 例如: 12321 就是...

  • Python3 欧拉计划 问题36-40

    36、二进制回文数   十进制数585 的二进制表示为1001001001,可以看出它在这两种进制下都是回文数。 ...

  • 01、回文十进制数

    1.描述 如果把某个数的各个数字按相反的 顺序排列,得到的数和原来的数相同,则 这个数就是“回文数”。譬如1234...

  • 算法入门篇——回文数

    问题 求用十进制、二进制、八进制表示都是回文数的所有数中,大于十进制数 10 的最小值。 (目标时间:10分钟) ...

  • 自学Python:回文数的形成

    什么是回文数? 回文数是指这个数无论从左向右读还是从右向左读都是一样的,如121、11等。 任取一个十进制正整数,...

  • 求用十进制、二进制、八进制表示都是回文数的所有数字中,大于十进制

    原始题目:求用十进制、二进制、八进制表示都是回文数的所有数字中,大于十进制数10的最小值 可以将题目拆分为三个子函...

  • java笔试题(一)

    1.回文数Palindrome Number 判断一个整数是佛是回文数,回文数是指正序(从左到右)和倒序(从右到左...

  • 1.判断回文数

    1.判断回文数

  • 回文数最优解

    回文数 非回文数 JAVA 解法

  • 进制转换

    一、二进制与十进制互相转换 1. 十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得...

网友评论

      本文标题:1 - 回文十进制数

      本文链接:https://www.haomeiwen.com/subject/cyduuxtx.html