トップ «前の日記(2012-12-01(Sat)) 最新 次の日記(2012-12-03(Mon))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2012-12-02(Sun) 夕方一時雨。その後晴れて、えらく寒かった

15の倍数への処理を省略したfizzbuzz

どこかで聞いていたが、それも省略。
なんとかpython2.6 以上(手元にあるのは2.7.3と3.2.3)で 動くようにできた。はずだ。

from __future__ import print_function
for num in range(1,101):
  if(not num%3):
    print('fizz', end='')
  if(not num%5):
    print('buzz', end='')
  if(num%5 and num%3):
    print(num, end='')
  print('')

Cで書いても、大して違わなかった。
演算子の優先順位( "%" は "!" より優先度が低い ( 参考1))に嵌った程度 (python の "%" は、"and" や "not" より上 参考2)。

#include<stdio.h>
int main()
{
  int x;
  for(x=1; x < 101; x++) {
    if(! (x%3)) printf("fizz");
    if(! (x%5)) printf("buzz");
    if(x%3 &&  x%5) printf("%d", x);
    printf("\n");
  }
  return 0;
}

switch ... case 文で書けないかと思ったが、case には論理値は 書けないっぽい("エラー: case ラベルを整数定数に還元できません"と 叱られる)。旨い解決策が浮かばないので、ここまで。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。