落書きノート

ふと自分が気になった事を書いてます

Ruby JavaScript 10進数で回文

新しい本の問題をやってみました。

Q:10進数、2進数、8進数のいずれで表現しても回文数となる数のうち、10進数の10以上で最小の値を求めてください。

q-1.rb

num = 11

while true
  if num.to_s == num.to_s.reverse &&
    num.to_s(8) == num.to_s(8).reverse &&
    num.to_s(2) == num.to_s(2).reverse
    puts num
    break
  end
  num += 2
end

q-1.js

String.prototype.reverse = function (){
  return this.split("").reverse().join("");
}

var num = 11;

while(true){
  if((num.toString() == num.toString().reverse()) &&
      (num.toString(8) == num.toString(8).reverse()) &&
      (num.toString(2) == num.toString(2).reverse())){
        console.log(num);
        break;
      }
  num += 2;
}

実行結果

> 585

初っ端から結構難しい。それにしてもRuby便利だなぁ。JSはnode.jsで実行すれば便利です。