[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 04/11 16:12 / Filesize : 123 KB / Number-of Response : 402
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラマーなら「FizzBuzz問題」解けるよな?



1 名前:(´・ω・`) ◆Hc1VAagKMg [2008/04/29(火) 20:06:06 ]
1から100までの数をプリントするプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm

言語自由

267 名前:仕様書無しさん mailto:sage [2010/05/31(月) 13:38:35 ]
すんません
for i in range(1,100):
  if i%3==0:
    print("Fizz",end='')
  if i%5==0:
    print("Buzz",end='')
  print('\n')
  i=i+1

Python3で書き直し。

268 名前:仕様書無しさん mailto:sage [2010/06/01(火) 00:11:02 ]
>>267
問題文を再確認して下さい。
時間がかかってもいいので、落ち着いて。

1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz …

269 名前:仕様書無しさん mailto:sage [2010/06/01(火) 00:26:53 ]
#include <stdio.h>
#include <stdlib.h>

int fizzbuzz(int pos)
{
 if (pos%15==0) { printf("振り出しに戻る\n"); return 1; }
 else if (pos%5==0) { printf("コンビニまでパシり\n"); }
 else if (pos%3==0) { printf("服を1枚脱ぐ\n"); }
 else { printf("%d\n",pos); }
 return pos;
}

int main(void)
{
 int pos = 1, saikoro;
 randomize();
 while (pos<100)
 {
   saikoro = rand() % 6 + 1;
   printf("現在位置%d-> %d が出ました\n",pos,saikoro);
   pos = fizzbuzz(pos+saikoro);
 }
 printf("ゴール");
 return 0;
}

270 名前:仕様書無しさん mailto:sage [2010/06/01(火) 23:40:39 ]
for i in range(1,100):
  if i%3==0:
    print("Fizz",end='')
  if i%5==0:
    print("Buzz",end='')
  i=i+1

次はLuaでやろうかな

271 名前:仕様書無しさん mailto:sage [2010/06/01(火) 23:42:58 ]
ミス

for i in range(1,100):
  print(i,end=' ')
  if i%3==0:
    print("Fizz",end='')
  if i%5==0:
    print("Buzz",end='')
  print(' ')
  i=i+1

こうかな?

272 名前:仕様書無しさん mailto:sage [2010/06/02(水) 00:56:00 ]
それも駄目です。

273 名前:仕様書無しさん [2010/06/02(水) 03:23:50 ]
perl言語で
$c = 0;
while ($c < 100){
$c++;
print $c . "\n";
if (($c % 3) == 0){print " fizz\n" }
if (($c % 5) == 0){print " bizz\n" }
}


274 名前:仕様書無しさん [2010/06/02(水) 03:36:33 ]
アウトプットを修正

while ($c < 100){
$f = 0;
$c++;
unless (($c % 15) == 0 ){
if (($c % 3 ) == 0 ) {print "fizz\n"; $f = 1 }
if (($c % 5 ) == 0 ) {print "buzz\n"; $f = 1 }
}else { print "fizzbuzz\n"; $f = 1 }
if ($f == 0 ) { print $c . "\n" }
}


275 名前:仕様書無しさん [2010/06/02(水) 03:42:32 ]
274
2chの雑談程度で1分程度で書くとちょっと美しさにかけるな。
もう少し美しさを考えてみる



276 名前:仕様書無しさん mailto:sage [2010/06/02(水) 03:51:17 ]
てーか>1読んでから書けよ馬鹿

277 名前:仕様書無しさん [2010/06/02(水) 03:58:46 ]
>>276
何が間違ってる?1読んで正しい結果出てると思うんだけど。

278 名前:仕様書無しさん [2010/06/02(水) 04:01:21 ]
大文字の事?

while ($c < 100){
$f = 0;
$c++;
unless (($c % 15) == 0 ){
if (($c % 3 ) == 0 ) {print "Fizz\n"; $f = 1 }
if (($c % 5 ) == 0 ) {print "Buzz\n"; $f = 1 }
}else { print "FizzBuzz\n"; $f = 1 }
if ($f == 0 ) { print $c . "\n" }
}


279 名前:仕様書無しさん mailto:sage [2010/06/02(水) 04:05:52 ]

while ($c < 100){
$f = 0;
$c++;
if (($c % 3 ) == 0 ) {print "Fizz"; $f = 1 }
if (($c % 5 ) == 0 ) {print "Buzz"; $f = 1 }
if ($f == 0 ) { print $c }
print "¥n"
}


280 名前:仕様書無しさん [2010/06/02(水) 04:11:15 ]
>>279
ちょっと綺麗に手直ししてくれてサンクス

281 名前:仕様書無しさん mailto:sage [2010/06/02(水) 05:21:20 ]
#include<stdio.h>
int main(void){
int i;
for(i=1;i<=100;i++){
if(i%15 == 0){
printf("FizzBuzz ");
}

else if(i%3 == 0){
printf("Fizz ");
}
else if(i%5 == 0){
printf("Buzz ");
}

else{
printf("%d ",i);
}
}
return 0;
}

282 名前:仕様書無しさん [2010/06/02(水) 15:49:55 ]
print"
",($_%3?"":"Fizz").($_%5?"":"Buzz")||$_ for 1..100

最短記録48byteとかどういうことなの…

283 名前:仕様書無しさん mailto:sage [2010/06/02(水) 16:33:50 ]
while条件にi<100とか書いてる奴はクビ
range(1,100)とか書いてる奴もクビ

284 名前:仕様書無しさん mailto:sage [2010/06/02(水) 16:53:53 ]
ttp://golf.shinh.org/p.rb?FizzBuzz#ranking
ここだな

ちなみに2010/06/02現在だと、
GolfScriptの37文字が今のところ最短
Bashが意外に短くて43文字で二位
Perl6が44文字で三位
Perlが48文字で四位
z80マシンコードが49文字で五位

285 名前:仕様書無しさん mailto:sage [2010/06/02(水) 17:15:41 ]
>>282
print+(Fizz)[$_%3].(Buzz)[$_%5]||$_,$/for 1..100



286 名前:仕様書無しさん [2010/06/02(水) 17:48:41 ]
>>284
それって、
1位 Bash, 2位 Perl(ver6), 3位 z80  (番外…GolfScript, HQ9F+)
のような気がする。

COBOLが、Brainf*ckやWhitespaceのようなネタ言語より、更に下…。
まあ、出力結果の414バイトよりは、小さくなるけど。

287 名前:仕様書無しさん mailto:sage [2010/06/02(水) 17:56:24 ]
…出力結果をlha圧縮したら、202バイトになった。
コマンド「lhasa a.lzh」と合わせても、213バイト。

つまり、出力結果>>>>>Esoteric(ネタ言語)>>>>>COBOL

288 名前:仕様書無しさん mailto:sage [2010/06/02(水) 18:59:05 ]
いや、COBOLってもともと冗長なの目的な言語だし。
なにいってんのおまいら。

289 名前:仕様書無しさん mailto:sage [2010/06/02(水) 20:58:14 ]
>>286
あくまでもここの仕様でのランキングだから、実質とか考える意味は無い
元々ここのランク対象外なHQ9F+を持ち出す意味も無い
COBOLが冗長なのも当たり前っちゃ当たり前
Bashっつっても実質ほぼGNU sedだから環境依存だろとか、言い出したらきりがない

290 名前:仕様書無しさん mailto:sage [2010/06/02(水) 21:02:49 ]
つーか言語の優劣ランキングと勘違いしてる奴が痛い

291 名前:仕様書無しさん mailto:sage [2010/06/03(木) 00:30:49 ]
>>288
「おまいら」っていうか、俺一人。(286=287)
この板、ID出ないんだね。

COBOLネタで釣れると思ったら、極めて常識的な意見ばかりで、がっかりだ。

292 名前:仕様書無しさん mailto:sage [2010/06/03(木) 01:24:07 ]
今さらCOBOLなんて知らない世代のほうが多いのかもよ

293 名前:仕様書無しさん mailto:sage [2010/06/03(木) 02:05:48 ]
「釣れると思ったら」は前置と後置で全く印象が変わるな

294 名前:仕様書無しさん mailto:sage [2010/06/03(木) 20:45:17 ]
ご迷惑おかけします、>>271です。
これでどうですか、ダメですか?
def fizzbuzz():
  i=1
  text=""
  while i<=100:
    if i%3==0:
     text += "Fizz"
    if i%5==0:
     text += "Buzz"
    if text=="":
      yield i
    else:
      yield text
    i+=1
    text=""

for a in fizzbuzz():
  print a,


295 名前:仕様書無しさん mailto:sage [2010/06/04(金) 00:58:12 ]
おめでとうございます



296 名前:仕様書無しさん mailto:sage [2010/06/04(金) 02:11:38 ]
ジェネレータとか使って関数分けてるのが半端に汎用的で無駄な気もするけど、似た戦略で書くなら、

def fizzbuzz(nums=range(1,101)):
 for i in nums:
  s = ""
  if i % 3 == 0:
   s += "Fizz"
  if i % 5 == 0:
   s += "Buzz"
  yield i if s == "" else s

for s in fizzbuzz():
 print s

こんな感じにするかなぁ俺だと。さらに悪乗りするなら、

def general_fizzbuzz(nums, *fv):
 for i in nums:
  s = ""
  for f, v in fv:
   if f(i):
    s += v
  yield str(i) if s == "" else s

def fizzbuzz(nums=range(1,101)):
 return general_fizzbuzz(nums,
  (lambda i: i % 3 == 0, "Fizz"),
  (lambda i: i % 5 == 0, "Buzz"),
  )

for s in fizzbuzz():
 print s

297 名前:仕様書無しさん mailto:sage [2010/06/04(金) 12:41:52 ]
100が変動することも踏まえて定数にすべきだよな

298 名前:仕様書無しさん mailto:sage [2010/06/04(金) 18:12:44 ]
for s in fizzbuzz(itertools.count(-100000)):
  print s

とかに変えたりな

299 名前:仕様書無しさん mailto:sage [2010/06/04(金) 19:06:16 ]
100は所詮デフォルトパラメータだから埋め込んでも問題なくね

300 名前:仕様書無しさん mailto:sage [2010/06/05(土) 00:08:07 ]
一方、Perlはやっぱりキチガイだった
ttp://d.hatena.ne.jp/sugyan/20100321/1269174230

301 名前:仕様書無しさん [2010/06/06(日) 01:21:02 ]
for i in range(1,101):

script = i

if (i%3==0)and(i%5==0):
script = "FizzBuzz"
elif i%3==0:
script = "Fizz"
elif i%5==0:
script = "Buzz"

print script

302 名前:仕様書無しさん mailto:sage [2010/06/06(日) 02:00:29 ]
pythonはコピペに向かない

303 名前:仕様書無しさん mailto:sage [2010/06/06(日) 23:43:14 ]
プログラマーなら「 変換プログラム」作れるよな?

304 名前:仕様書無しさん mailto:sage [2010/06/06(日) 23:53:17 ]
>>303
単にスペース置き換えるだけですね?

305 名前:仕様書無しさん [2010/06/07(月) 23:07:35 ]
俺は超高度なセキュリティ対策用データコンバータープログラム作れるぜ。
これによってXSSという世界的脅威を打破できる。



306 名前:仕様書無しさん mailto:sage [2010/06/25(金) 15:51:42 ]
dc

[sg[]]sx1[ddd3%d[Fizz]r0<xnr5%d[Buzz]r0<xn*0=xpsg1+dd101>M]dsMx

307 名前:仕様書無しさん mailto:sage [2010/07/28(水) 21:13:41 ]
あー、Cって文字列直接入れられなかったんだorz。ずっとテスターでorz状態だ

c=1;
fcint=3;
bcint=5;
max = 100;
fc=fcint;
bc=bcint;
for (c=1; c>max; c++,fc--,bc--){
f = "";
b = "";
if (fc==1){
f = "fuzz";
fc = fcint;
}
if (bc==1){
b = "buzz";
bc = bcint;
}
if (f=="" && b==""){
printf(c)
}
else{
printf(f + b)
}
}




308 名前:仕様書無しさん mailto:sage [2010/07/28(水) 23:27:57 ]
これは酷い…。

309 名前:仕様書無しさん mailto:sage [2010/07/29(木) 15:47:08 ]
#include <stdio.h> //printf使うには、インクルード文が必要
#include <string.h>
int main(void) { //main関数が必要
 int c=1; //型の宣言が必要
 int fcint=3 - 1; //同上 + 下のほうでfc==0に書き換えた分、1をマイナス (※最初に表示する数が1だから)
 int bcint=5 - 1; //同上 + 下のほうでbc==0に書き換えた分、1をマイナス
 int max = 100; //同上
 int fc=fcint; //同上
 int bc=bcint; //同上
 for (c=1; c<=max; c++,fc--,bc--){ // c<=maxにしないとループ回らないよ!!
   char* f = ""; //型の宣言が必要(C++ならstring型を使うこと)
   char* b = "";
   if (fc==0){ //3つおきじゃなくて2つおきになってたよ!!
     f = "fizz"; //fuzzじゃなくってfizz(笑)
     fc = fcint + 1;
     }
   if (bc==0){ //5つおきじゃなくて4つおきになってたよ!!
     b = "buzz";
     bc = bcint + 1;
     }
   if (strcmp(f,"")==0 && strcmp(b,"")==0){ //ポインタと空文字列を比較しないこと(C++なら元のままでOK)
     printf("%d",c); //数は直接printfできない
     }
   else{
     printf(f); printf(b); //文字列型ではないので、足し算しないこと(C++なら元のままでOK)
     }
   printf("\n"); //できれば、改行すること
   }
 return 0; //main関数の戻り値
 }

310 名前:仕様書無しさん mailto:sage [2010/07/29(木) 15:52:42 ]
ごめん、 fcint=3, bcint=5, fc=fcint-1, bc=bcint-1で、
ループ内が、fc=fcint, bc=bcintだね。
上のでも正常に動くけど。

311 名前:307 mailto:sage [2010/07/29(木) 19:09:51 ]
>>309
わお。訂正していただけて、マジ参考になりますthx
つか俺は文法勉強しなおしだー・・・

312 名前:仕様書無しさん mailto:sage [2010/09/19(日) 01:44:08 ]
main(i){for(;i-101;puts(i++%5?"":"Buzz")){printf(i%3?i%5:"%d":0:"Fizz");}

313 名前:仕様書無しさん [2010/09/20(月) 20:33:16 ]
print 1
print 2
print Fizz
print 4
print Buzz
print Fizz
...
end.

314 名前:仕様書無しさん mailto:sage [2010/09/22(水) 00:04:40 ]
>>312
printfの引数、なにそれ?

315 名前:仕様書無しさん mailto:sage [2010/09/24(金) 21:14:51 ]
とりあえず動かして見ろ



316 名前:仕様書無しさん mailto:sage [2010/09/25(土) 00:54:15 ]
バグってるって話だろ。
main(i){for(;i-101;puts(i++%5?"":"Buzz")){printf(i%3?i%5?"%d":"Buzz":"Fizz",i);}}

317 名前:仕様書無しさん mailto:sage [2010/09/25(土) 01:08:43 ]
あ、いけね俺も失敗してら。結果は見た目正常風だとは思うが。

318 名前:仕様書無しさん [2010/10/22(金) 13:04:46 ]
FizzBuzzを極めてもう2年ほどたちます。
そろそろ採用してくれる会社を紹介してください。

319 名前:仕様書無しさん mailto:sage [2010/10/23(土) 21:07:58 ]
条件@
  もっとも安く仕上げよ
条件A
  運用コストは電源を入れてから1秒あたり1ドルかかる
  システムは以下の性能
    1. キー入力は1入力あたり1秒かかる
      shiftキー等の押下・離放もカウントする
    2. 文字入力は1文字あたり1ドルかかる
    3. プログラム入力後、コンパイル・実行開始までの秒数はカウントしない
    4. 実行は1行表示ごとに1秒かかる。表示した後同じ行に上書き表示
      するようなものは、上書きの度に1秒かかる
    5. 100行目(Buzz) 表示完了時までをコスト計算する


320 名前:仕様書無しさん mailto:sage [2010/10/23(土) 23:07:51 ]
Webプログラムじゃないのに{}を省略する理由はなんだろうか?
俺が昔読んだ本では{}は省略するなとあったけど
流行かな?

321 名前:仕様書無しさん mailto:sage [2010/10/23(土) 23:43:24 ]
>>319
条件が曖昧すぎて、パズルとして成り立ってないよ
プロ奴隷使えば安くなるんじゃねw

>>320
宗教論争

322 名前:仕様書無しさん mailto:sage [2010/10/24(日) 10:36:38 ]
たしかコンパイルしたら同じだから人間が読みやすいように
括弧でわかりやすく書くとあったけど。
そういう俺もめんどくさいとき括弧を省略するけど。

323 名前:仕様書無しさん mailto:sage [2011/01/02(日) 07:37:02 ]
Cのifとかの話なのかなぁ
LinuxカーネルやGnuみたいにメジャーなところでも、ifの{}は複文じゃなければ必ず
省略すること(ネストした時を除く)というルールを採用してる超大規模コードも
あるのよ
オフサイドルールで成り立っちゃってる言語もあるくらいだから、本当は言うほどの
危険は無いのかもしれん、と思うようになってからは、省略派に鞍替えしたというか、
元々省略してた(それでバグった記憶も無かった)ので省略派に戻ったというか

324 名前:仕様書無しさん mailto:sage [2011/01/14(金) 20:35:03 ]
迷路の最短経路を求める問題が、とあるブログで出題された
okajima.air-nifty.com/b/2010/01/post-abc6.html
人材獲得作戦・4 試験問題ほか
まともなプログラマーなら幅優先探索ぐらい知ってるから当然のことながら解くことが出来るよな

325 名前:仕様書無しさん mailto:sage [2011/01/18(火) 02:22:56 ]
↑「幅優先探索」とか、答え書かないでよ…。

でも、単純な幅優先なら、計算量爆発するよね。
25分〜3時間か。FizzBuzz位ならともかく、やってらんない。ギブアップだわ。寝る。



326 名前:325 mailto:sage [2011/01/18(火) 02:37:27 ]
ゴメン、枝切りすれば、それなりに実用的な速度にはなりそうではあるね。(全部スペースとかでない限り。)
まぁ、なんか面倒臭そうなので、プライド捨てるわ。
実行時間無視の書き捨てコードとかじゃ、ダメ扱いされそうだし。

327 名前:325 mailto:sage [2011/01/18(火) 03:48:46 ]
大学は情報系でないので、力技。(全てのセルに、最初のポイントからの位置を書き込み。)
予想通り、デバッグで時間取られる。
そもそも、やる気ないから、コードは汚いし。

バカバカしくなってきたから、中断する。
「まともなプログラマーなら〜」って言葉に、どうしても反応してしまう。
挑発に乗っちゃうクセを直さないとね。

328 名前:325 mailto:sage [2011/01/18(火) 03:54:46 ]
何かイライラする。
さらっと数行で書けるものならともかく、意味の無いコード、1時間も書かされるとちょっと。
別に、芸のある出題でもないし。
スルーして、フリーソフトのメンテしとくんだったと後悔。

329 名前:325 mailto:sage [2011/01/18(火) 03:56:46 ]
一応、Cで、セルに番号振るところまで書いた。
デバッグ含め、1時間半か。
ちょっと無能かもしれんが、馬鹿にするなら、馬鹿にしてくれ。

330 名前:325 mailto:sage [2011/01/18(火) 04:44:16 ]
あ、出来た。
嫌々やるのやめて、コード整理したら、出来た。

100ステップって、ちょっと簡単に書き捨てられる量じゃない。
頭でアルゴリズム簡単に思いついても、デバッグに時間がかかるし。
「プログラマーなら出来なきゃ困る」なら、実際に書かなければならないんだから、時間のことも考えて欲しい。

あと、ブログで示されていたアルゴリズム、文系には辛いよ。
こっち系だとは思ったけど、昔、本で名前知った程度だから、ググルや参考書なしでは無理。力技しかなかった。

まあ、>>324は、スルー力検定だったのだなw

331 名前:仕様書無しさん mailto:sage [2011/01/18(火) 12:40:58 ]
リアル厨房の時に、マイクロマウスでやったな。
8bitマイコンでモータやらセンサやらの面倒を見つつ、
迷路脱出させてた。
出口が隅じゃなく、内部に有ると泣いたw

332 名前:325 mailto:sage [2011/01/18(火) 15:33:00 ]
>>331
あれって、総当り方式じゃん。左側か右側かの壁伝ってくんだっけ?


>>324の問題って、なんか、「求職者を見下したい」感がヒシヒシ伝わってきて嫌。

プログラムって、もっと、大らかに、何日もかけて、じっくり楽しむべきものなんだよね。
3時間とか、時間区切ってコーディングするのは、仕事でもない限り、邪道。
マイコンロボを試行錯誤して動かしたりとか、何日も考えてパズルの最適アルゴリズムを見出したりとか。

333 名前:仕様書無しさん mailto:sage [2011/01/18(火) 20:42:37 ]
>あれって、総当り方式じゃん。左側か右側かの壁伝ってくんだっけ?
だから、それだと出口が内部に有ると駄目だし、ループしてる柱みたいな
場所が有ると永久ループ。

一応、自分が通った経路を記憶しておいてマッピングしながら移動する
のだが、タイヤのスリップとかセンサの誤検知とか有るので、信頼度の
重み付けしながらファジーにマッピングして行く。

汚部屋と言う名の迷路を掃除するロボット、ルンバも作れなさそうだな。
中国製ランダムウォークのパチ物に負けるぞ。

334 名前:仕様書無しさん mailto:sage [2011/02/06(日) 02:07:41 ]
>>324
ためしにやってみた
hibari.2ch.net/test/read.cgi/tech/1215352849/294

>>325->>330
きにすんな
幅優先探索という言葉は知っていてもロジックを忘れてしまったから
解くのに3時間ぐらいかかった

ところで何のフリーソフト作ってる?
すごく気になるから教えて
使ってみたい


335 名前:仕様書無しさん mailto:sage [2011/02/08(火) 23:42:25 ]
>>325
幅優先探索の場合、計算時間より計算空間の方が先に破綻するんじゃ
ないかな。特にRAMの容量に限りの有る組込み制御の場合。
8bit時代は、オセロとか将棋も深さ優先探索してた。例外は森田和郎
ぐらいで、これもSSS*探索とαβ探索のハイブリッド。



336 名前:仕様書無しさん mailto:sage [2011/03/07(月) 11:10:02.94 ]
なつかしい話題発見。
全セル分のワークと若干のキューが確保できればいいんだから
そんなにメモリ圧迫するってほどでもないような。
といっても対象フィールドの広さにもよるだろうが、
例の出題程度の広さだったら破綻の心配はまずしなくていいでしょう。
各セルごとにゴール、スタート、障害物、未踏地、
既に歩いた地(「来た方向」の保持兼用)の区別がつけばいいので
ワークは各セルごとに1バイト(最低4ビット)あれば十分足りるし。
でも深さ優先探索しか知らなかった(書いたことがなかった)ので
試しに解いてみた時にはちょっと手こずってしまった。
ちなみに件の例題では深さ優先探索でも実用時間内に解けてしまう。
これって結構ワナかもな、と思った。

337 名前:仕様書無しさん mailto:sage [2011/03/18(金) 10:49:36.47 ]
空気読まずにCLOSでfizzbuzz,

(defgeneric fbzz (%3 %5 n)
(:method (%3 %5 n) (print n))
(:method ((%3 fixnum) %5 n) (print 'fizz))
(:method (%3 (%5 fixnum) n) (print 'buzz))
(:method ((%3 fixnum) (%5 fixnum) n) (print 'fizzbuzz)))

(defun fizz-buzz (n) (fbzz (/ n 3) (/ n 5) n))

(loop for i from 1 to 100 do (fizz-buzz i))

338 名前:プログラマ志望の経済学部4年生 mailto:sage [2011/06/10(金) 16:54:07.54 ]
プログラミング始めて3週間です、どうですか?
#include <stdio.h>

int main(void)
{
int a;

for (a = 1; a <= 100; a++)
{
if (a % 3 == 0 && a % 5 == 0)
printf ("FizzBuzz\n");

else if (a % 3 == 0)
printf("Fizz\n");

else if (a % 5 == 0)
printf("Buzz\n");

else
printf("%d\n", a);
}

return 0;
}


339 名前:仕様書無しさん mailto:sage [2011/06/11(土) 00:06:20.06 ]
どうですかって言われても
まぁいいんじゃね
あえて言えば平凡すぎて面白みがなくてつまらん

340 名前:仕様書無しさん [2011/06/11(土) 03:43:41.34 ]
いい機会なんで?演算子を使ってみよう

341 名前:仕様書無しさん mailto:sage [2011/06/11(土) 10:56:59.64 ]
まいど = まいど?まいどぉ:まいどぅ

342 名前:仕様書無しさん mailto:sage [2011/06/11(土) 11:19:06.80 ]
こうかな
int main(void){
char *s[4] = { "  ","Fizz","Buzz","FizzBuzz"};
int i;
for (i=1;1<=100;i++){
sprintf(s[0],"%d",i)
puts(s[(i%5==0)<<1+(i%3==0)]);
}
}
確認してないからわからんがかなり速の筈
sprintf部分を自分で書けばもっと速くなる

343 名前:仕様書無しさん mailto:sage [2011/06/11(土) 11:31:36.95 ]
こうすればもっと早いな
int main(void){
char *s[4] = { "  ","Fizz","Buzz","FizzBuzz"};
int i, j;
for (i=1;1<=100;i++){
j=(i%5==0)<<1+(i%3==0);
if(j==0)
sprintf(s[0],"%d",i);
puts(s[j]);
}
}

344 名前:仕様書無しさん mailto:sage [2011/06/11(土) 17:32:44.94 ]
無限ループするじゃん。

345 名前:仕様書無しさん mailto:sage [2011/06/11(土) 18:10:12.16 ]
1<=100はともかく、<<演算子の優先順位が+より低いのにハマってるよ。
*2にしても多分同じオブジェクトが出るとは思うけどね。

↓結果
int main(void){
 char *s[4] = { " %d¥n","Fizz¥n","Buzz¥n","FizzBuzz¥n"};
 int i;
 for (i=1;i<=100;i++)printf(s[(!(i%5)<<1)+!(i%3)],i);
}




346 名前:仕様書無しさん mailto:sage [2011/06/11(土) 21:04:59.44 ]
確認してないからわからんがかなり速の筈


347 名前:仕様書無しさん mailto:sage [2011/06/11(土) 21:07:23.93 ]
Link: codepad.org/OUmFv01u

int main(void){
char *s[4] = { "  ","Fizz","Buzz","FizzBuzz"};
int i;
for (i=1;1<=100;i++){
sprintf(s[0],"%d",i)
puts(s[(i%5==0)<<1+(i%3==0)]);
}
}

In function 'main':
Line 6: error: expected ';' before 'puts'

348 名前:仕様書無しさん mailto:sage [2011/06/11(土) 21:09:13.71 ]
Link: codepad.org/LsWu5lBF

int main(void){
char *s[4] = { "  ","Fizz","Buzz","FizzBuzz"};
int i, j;
for (i=1;1<=100;i++){
j=(i%5==0)<<1+(i%3==0);
if(j==0)
sprintf(s[0],"%d",i);
puts(s[j]);
}
}


Output:
Segmentation fault

349 名前:仕様書無しさん mailto:sage [2011/06/12(日) 02:55:39.33 ]
FizzBuzzはできて当たり前、がんばるもんじゃないんだけどな。
「どうだっ」みたいな人が会社にいて困った。

350 名前:仕様書無しさん mailto:sage [2011/06/12(日) 12:27:40.95 ]
int main(void){
char *p, c[] = " ";
char *s[] = { "","Fizz","Buzz","FizzBuzz"};
int i, j, k;

s[0] = c;
for (i=1;i<=100;i++){
j = ((i%5 == 0)<<1) + (i%3 == 0);
if(j==0) {
p = c;
k = i;
if(k >= 100) {
*p++ =k/100 +'0';
k =k%100;
}
if(k >= 10) {
*p++ =k/10 +'0';
k =k%10;
}
*p++ =k +'0';
*p = NULL;
}
puts(s[j]);
}
return 0;
}
動くようにするとこうだな
sprintfはよくわからんのではずしたわ


351 名前:仕様書無しさん mailto:sage [2011/06/12(日) 18:18:48.82 ]
平凡

use strict ;

my $m3 = 3 ;
my $m5 = 5 ;
for( my $n = 1 ; $n <= 100 ; ++$n ) {
if( $m3 == $n ) {
$m3 += 3 ;
if( $m5 == $n ) {
$m5 += 5 ;
print STDOUT "FizzBuzz\n" ;
} else {
print STDOUT "Fizz\n" ;
}
next ;
}
if( $m5 == $n ) {
$m5 += 5 ;
print STDOUT "Buzz\n" ;
next ;
}
print STDOUT $n, "\n" ;
}
exit(0) ;
__END__


352 名前:仕様書無しさん mailto:sage [2011/06/13(月) 23:12:21.79 ]
1.可変性
  このプログラムが実用になった場合、標準出力以外のものに出すよう変更の必要があると思われるが、簡単にできるよう考慮されているか
  倍数が3のみで5なしになったら?逆に両方残したまま7が増えたら?条件変わってもすぐに変更できるか
2.動作速度
  十分速いかあるいは速度アップの必要が生じた場合、どこをいじればよいか?具体的に内部でどういう動作が 行われているかわかっているか

 等をワシなら気にするな
最初黙っててできた後から上記のような質問してもすぐに対応したら、かなりできる奴だと思うわ

353 名前:仕様書無しさん mailto:sage [2011/06/14(火) 01:46:04.12 ]
いや、そもそも「かなりできる」奴か見るためのテストじゃないし。
がんばるもんじゃないったらスレ終わりじゃん。ここマ板だし。
こんな書き方もある、ってお遊びだよ?言わせんな恥ずかしいw

354 名前:仕様書無しさん mailto:sage [2011/06/15(水) 00:34:09.43 ]
♪フィズバズフィズバズよよいがよい
♪フィズバズフィズバズどどんがどん
♪三の倍数の時はフィズ
♪五の倍数の時はバズ
♪三と五の三と五の
♪公倍数ではフィズバズ印字
♪フィズバズ音頭でどどんがどん


















そこのズブズブの日本人のあなた
自然にメロディが浮かんで来たでしょ


355 名前:uy ◆yyC0rYWEq2 mailto:sage [2011/06/16(木) 22:02:56.19 ]
メタでかけよ



356 名前:仕様書無しさん mailto:sage [2011/06/17(金) 00:03:58.61 ]
>>355
お手本プリーズ


357 名前:仕様書無しさん mailto:sage [2011/06/17(金) 10:22:50.20 ]
メタと付く言語はMLとmetafontしか知らんな…


358 名前:仕様書無しさん mailto:sage [2011/06/17(金) 16:55:18.24 ]
メタで書けば3や5プリントしてもいいのかw

359 名前:仕様書無しさん mailto:sage [2011/07/07(木) 21:47:26.61 ]
haskellとcで!!と思ったら、すでに書かれてた。。。Orz
haskellの内包表記で書けないか考えてみる


360 名前:仕様書無しさん mailto:sage [2011/07/08(金) 12:32:30.06 ]
using System;

class FizzBuzz
{
    static void Main()
    {
        for (var n = 1; n <= 100; n++) {
            var f = (n % 3 == 0 ? "Fizz" : "")
                + (n % 5 == 0 ? "Buzz" : "");
            Console.WriteLine(f == "" ? "{0}" : f, n);
        }
    }
}

361 名前:仕様書無しさん mailto:sage [2011/07/08(金) 20:37:40.13 ]



これがどう問題なのか
誰か詳しく教えてくれ

913 :名無しさん@12周年 :sage :2011/07/02(土) 21:53:57.61 ID:vEYqWa5o0
>>871
アメリカで例えると
オバマ大統領がアルカイダにいる、ビンラディンの家族に資金援助していたという事で騒ぎになってる。

オバマがこっそり9.11実行犯の釈放嘆願書に署名
         ↓
オバマ「私ははめられた!!うっかり署名してしまった!  私は卑怯で残忍なテロリストを絶対許さない!!」
         ↓
オバマはイスラム原理主義の団体から多額の寄付を受け取っていた←追加分
         ↓
オバマがこっそりビンラディンの家族に毎年、計6250万円献金
         ↓
クリントンもこっそりビンラディンの家族に1000万円献金 ←ここが鳩山分★
         ↓
アメリカのメディアは全く報じず
ねーよwww






362 名前:仕様書無しさん mailto:sage [2011/07/17(日) 17:04:57.69 ]
repeat 99
mes n+cnt
if n\15=0 : mes "FizzBuzz": else {
if n\3=0 : mes "Fizz"
if n\5=0 : mes "Buzz"
}
loop

;未RUN

363 名前:仕様書無しさん mailto:sage [2011/07/21(木) 01:29:31.99 ]
ホットスーププロセッサなら

for n,1,100:s="":if n\3=0{s="Fizz"}if n\5=0{s+"Buzz"}if s=""{s=n}mes s:next

364 名前:仕様書無しさん mailto:sage [2011/07/21(木) 12:30:50.58 ]
using System;
class FizzBuzz
{
    static void Main()
    {
        int m3 = 0, m5 = 0;
        for (int i = 1; i <= 100; i++) {
            if (++m3 == 3) {
                Console.Write("Fizz");
                m3 = 0;
            }
            if (++m5 == 5) {
                Console.Write("Buzz");
                m5 = 0;
            }
            if (m3 != 0 && m5 != 0)
                Console.WriteLine(i);
            else
                Console.WriteLine();
        }
    }
}

365 名前:362 mailto:sage [2011/07/21(木) 23:31:27.81 ]
>>363
そんなかんたんにいくのね・・・



366 名前:仕様書無しさん mailto:sage [2011/08/01(月) 10:21:21.51 ]
クソコードを書きたくなったから書いてみる
print ':'.join('FizzBuzz' if n % 15 == 0 else 'Fizz' if n % 3 == 0 else 'Buzz' if n % 5 == 0 else str(n) for n in xrange(1, 101))

367 名前:仕様書無しさん mailto:sage [2011/08/01(月) 10:23:28.39 ]
\nに直すの忘れてたが多分どうでもいいな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<123KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef