m2

ナベアツ

力試しにナベアツのような判定をするプログラムを作ろうとしたところ、問題が発生しました。
3の倍数や5の倍数は考えるまでもないんですが、3のつく数字をどう判定したらいいのかわかりません。
どのように判定させればよいのでしょうか?

http://q.hatena.ne.jp/1207585413

黙ってコードを書こう。
javascript:

(function(){
  function na(n) {
    return /3/.test(n) || /0$/.test(n.toString(3));
  }
  alert(na(111));
})()

なかなか「アホっぽく」ていいんじゃないでしょうか?

  • -

3の倍数の方を変則的に書きたくて検索したら以下のを見つけました。

【3の倍数】
各位の数の和が3の倍数であること。
例えば,x=1,456,863→1+4+5+6+8+6+3=33よりxは3の倍数。
100a+10b+c=(99+1)a+(9+1)b+c=3(33a+3b)+(a+b+c)

http://www.nikonet.or.jp/spring/sanae/MathTopic/times/times.htm

これはおもしろい!プログラムにしてみます。
javascript:

(function(){
  function mul3(n) {
    var str = n.toString();
    var sum = 0;
    for (var i = 0; i < str.length; i++) {
      sum += Number(str[i]);
    }
    return (sum % 3 == 0);
  }
  alert(mul3(1456863));
})()

これはひどい