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 言語自由
224 名前:仕様書無しさん mailto:sage [2010/04/22(木) 00:07:26 ] 向こうの子供はハッキングしまくりだってのにお前らときたら… 【調査】13歳までにハッキングをした経験した34%――米英の若者の実態調査(10/04/15) pc11.2ch.net/test/read.cgi/pcnews/1271336569/
225 名前:仕様書無しさん mailto:sage [2010/04/22(木) 02:12:40 ] >>221-223 うゆw問題からしてわかってねぇwwさすが天才www "mes"w "kard"とおんなじwwメソッドwww
226 名前:仕様書無しさん [2010/04/23(金) 00:56:20 ] >>225 223は動作は当たっているんじゃない。 % を使用しない方法ではこれでいいんじゃない?
227 名前:仕様書無しさん mailto:sage [2010/04/23(金) 01:42:01 ] >>224 それってさ、漏れパスを使ったとか 正しい言い方忘れたが、「スクリプト使用のガキ」も含んででない?
228 名前:仕様書無しさん mailto:sage [2010/04/23(金) 01:44:07 ] Script kiddie ?
229 名前:仕様書無しさん mailto:sage [2010/04/23(金) 02:07:26 ] >>226 %を使う使わない以前に結果を他のコードと比べるくらいなぜできない? 数学のテストで「計算結果は違うけど式はあってますよね」とか言うクチか。
230 名前:仕様書無しさん mailto:sage [2010/04/23(金) 02:59:12 ] %を忘れたwという変な条件を入れたとしても、 int reminder(int divisor, int dividend) みたいな相当するメソッドを作るだろふつー。 直近の3と5の倍数を保持して商と比べるなんてせんでも。 void型のメソッドしか認めんwのなら別だけどさ。
231 名前:仕様書無しさん mailto:sage [2010/04/23(金) 14:41:46 ] >>229 結果は当たっているよ。書き方の問題ね。
232 名前:仕様書無しさん mailto:sage [2010/04/23(金) 14:57:18 ] >>1 >1から100までの数をプリントするプログラムを書け。 >ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 とあるのに3や5をプリントアウトしたらただの間違いだろ。 問題をちゃんと読んでねぇアホじゃねーか。
233 名前:231 mailto:sage [2010/04/23(金) 15:26:12 ] >>232 あー そこか
234 名前:仕様書無しさん mailto:sage [2010/04/24(土) 03:25:23 ] 223に感動した。 コード読んでも、何やってるのかワカランかったが、 int3, i/3, int5, i/5 の値を出力してみたら、発想の奇抜さにたまげた。
235 名前:234 mailto:sage [2010/04/24(土) 03:33:23 ] 233の計算テクはそのままで、変数int3,int5を取り去ったコード。 if ((i-1)/3!=i/3 && (i-1)/5!=i/5) { printf("FizzBuzz\n"); } else if ((i-1)/3!=i/3) { printf("Fizz\n"); } else if ((i-1)/5!=i/5) { printf("Buzz\n"); } else { printf("%d\n",i); }
236 名前:仕様書無しさん mailto:sage [2010/04/24(土) 03:35:25 ] 訂正 ×233 ○223 あと、if ((i-1)/15!=i/15) でOKだ。
237 名前:仕様書無しさん mailto:sage [2010/04/24(土) 03:59:03 ] iが正の整数なら剰余%は除数xについてi-(int(i/x)*x)なんだから当たり前じゃん。 %を忘れてどうこうってのがどうかしてる。馬鹿?
238 名前:仕様書無しさん mailto:sage [2010/04/24(土) 10:03:06 ] %を忘れた人のため:その2 #include <stdio.h> int rem3is0[16]={1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1}; int rem5is0[16]={1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1}; int compact( unsigned int n ) { n = ( n & 0x0f0f0f0f ) + ((n>>4 )&0x0f0f0f0f); n = ( n & 0x00ff00ff ) + ((n>>8 )&0x00ff00ff); n = ( n & 0x0000ffff ) + ((n>>16 )&0x0000ffff); return ( n > 15 )? compact(n): n; } #define N 100 int main( ) { unsigned int i; for( i = 1; i <= N; ++i ) { int j = compact(i); if( rem3is0[j] & rem5is0[j] ) { printf( "FizzBuzz " ); } else if( rem3is0[j] ) { printf( "Fizz " ); } else if( rem5is0[j] ) { printf( "Buzz " ); } else { printf( "%i ", i ); } } }
239 名前:仕様書無しさん mailto:sage [2010/04/24(土) 10:14:09 ] 修正: "%i " → "%u "
240 名前:仕様書無しさん mailto:sage [2010/04/24(土) 13:09:56 ] >238の応用 その3 ifも忘れた人のため #include <stdio.h> char *fz[16]={"","%u ","%u ","Fizz ","%u ","Buzz ","Fizz ", "%u ","%u ","Fizz ","Buzz ","%u ","Fizz ","%u ","%u ","FizzBuzz "}; int compact( unsigned int n ) { n = ( n & 0x0f0f0f0f ) + ((n>>4 )&0x0f0f0f0f); n = ( n & 0x00ff00ff ) + ((n>>8 )&0x00ff00ff); n = ( n & 0x0000ffff ) + ((n>>16 )&0x0000ffff); return ( n > 15 )? compact(n): n; } #define N 100 int main( ) { unsigned int i; for( i = 1; i <= N; ++i )printf( fz[compact(i)],i); }
241 名前:仕様書無しさん mailto:sage [2010/04/24(土) 13:23:30 ] >>240 いや、それだとこれと変わらなくて興が削がれるからだめだろ。 #include <stdio.h> char *fz[16]={"","%u ","%u ","Fizz ","%u ","Buzz ","Fizz ", "%u ","%u ","Fizz ","Buzz ","%u ","Fizz ","%u ","%u ","FizzBuzz "}; int main( ) { unsigned int i; for( i = 1; i <= 100; ++i )printf( fz[i-i/15*15],i); }
242 名前:仕様書無しさん mailto:sage [2010/04/24(土) 13:35:29 ] あまり変わらんけど関数テーブル版 #include <stdio.h> #include <stdint.h> void fb(uint32_t x){ printf( "FizzBuzz " ); } void f(uint32_t x){ printf( "Fizz " ); } void b(uint32_t x){ printf( "Buzz " ); } void n(uint32_t x){ printf( "%lu ", (unsigned long)x ); } void (*fn[4])(uint32_t) = { n, b, f, fb }; const uint32_t FN = 0xc1241843; unsigned int compact( uint32_t n ) { n = ( n & 0x0f0f0f0f ) + ((n>>4 )&0x0f0f0f0f); n = ( n & 0x00ff00ff ) + ((n>>8 )&0x00ff00ff); n = ( n & 0x000000ff ) + ((n>>16 )&0x000000ff); n = ( n & 0x0000000f ) + ((n>>4 )&0x0000000f); n = ( n & 0x0000000f ) + ((n>>4 )&0x0000000f); return n; } #define N 100 int main( ) { for( uint32_t i = 1; i <= N; ++i ) { (*fn[(FN>>compact(i)*2)&3])(i); } }
243 名前:仕様書無しさん mailto:sage [2010/04/24(土) 21:33:16 ] これはすごいね。 15回に1回ごとに3と5の倍数が来ることを想定して配列に代入しているという 理解でいいのかな。 class FizzBuzz { static final String strFizBuz[] = {"","","Fizz ","","Buzz ","Fizz ", "","","Fizz ","Buzz ","","Fizz ","","","FizzBuzz "}; public static void main(String[] args) { int count = 0; for (int i = 1; i <= 100; i++) { if (strFizBuz[count].equals("")) { System.out.println(i); count++; } else if (strFizBuz[count].equals("Fizz ") || strFizBuz[count].equals("Buzz ")) { System.out.println(strFizBuz[count]); count++; } else if (strFizBuz[count].equals("FizzBuzz ")) { System.out.println(strFizBuz[count]); count = 0; } } } } 簡単にするとこれでもOKでしょ
244 名前:仕様書無しさん mailto:sage [2010/04/24(土) 22:55:00 ] >243 >15回に1回ごとに3と5の倍数が来ることを想定して配列に代入しているという >理解でいいのかな。 全然違う。 関数compactが15で割った余りを(%演算子無しで)計算しているのがポイント。 下から4bitづつに区切って(まぁ上からでも同じだけど)、それを全部足したものと元の値では 15で割った余りが同じになることを利用している。 なぜそうなるかはちょっと頭をしぼって考えてみな
245 名前:仕様書無しさん mailto:sage [2010/04/24(土) 23:07:38 ] 10進数でmod 9が各桁の値の和に等しいってのと同じ話か。 16進数で考えてみようと思ったことが無かったぜ。
246 名前:仕様書無しさん mailto:sage [2010/04/24(土) 23:53:32 ] 明らかに%演算子より知名度低そうな知識だな…
247 名前:243 mailto:sage [2010/04/25(日) 09:43:48 ] >>244 違っていたか。しぼって考えてみます。
248 名前:(u_・y) ◆e6.oHu1j.o mailto:sage [2010/04/26(月) 04:48:47 ] >>225 おれが過去にかいたコードを描いたときにかんがえてた事を 予想すると、お前のその意味不明なレスもなんとなくわかるよ おれが適当に描いた部分は、 たとえ、プログラミング知らない奴でも修正できそうなレベルだ っていうところまではわかるか?? だれにでも解ける場所とか、自分が過去に解いた場所は適当になる それがuy。 その適当具合は、常軌を逸しているかもしれない 問題すら適当に読むか読まないし、コンパイルチェックもしないで2chに貼り付けたりもする たとえそれが間違っていてもどうでもいいやという気分になる まとめると: おれは忙しいから 無駄なことに時間は使いたくない
249 名前:仕様書無しさん mailto:sage [2010/04/26(月) 05:26:25 ] >>246 mod 9 = 0 の場合に限れば、「全桁の数字を足すと9の倍数になる数は9の倍数」 っていう中学生でも知ってる話だぜ。
250 名前:仕様書無しさん mailto:sage [2010/04/26(月) 08:13:08 ] 言い訳にもなってねえ 流石屑ニート様
251 名前:革命家[uy] ◆rT33C51l9k mailto:sage [2010/05/01(土) 21:52:31 ] え・・・、って思った よほどのヴぁかか、全然初心者レベルだろお前
252 名前:仕様書無しさん mailto:sage [2010/05/02(日) 00:20:36 ] 頭大丈夫?
253 名前:革命家[uy] ◆e6.oHu1j.o mailto:sage [2010/05/04(火) 10:42:56 ] さっさと追いつけよのろま
254 名前:仕様書無しさん mailto:sage [2010/05/04(火) 13:54:14 ] 職歴なしニートにおいつくのはもう無理なんで。。
255 名前:仕様書無しさん mailto:sage [2010/05/07(金) 19:45:27 ] using System; public class FizzBuzzFormat : IFormatProvider, ICustomFormatter { private static char[] Z = new char[] {'Z'}; public object GetFormat(Type formatType) { return formatType == typeof(ICustomFormatter) ? this : null; } public string Format(string format, object arg, IFormatProvider provider) { if (format == null) return String.Format("{0}", arg); if (format.StartsWith("Z")) { int n = (int) arg; bool m3 = n % 3 == 0, m5 = n % 5 == 0; return m3 ? (m5 ? "FizzBuzz" : "Fizz") : (m5 ? "Buzz" : n.ToString()); } if (arg is IFormattable) return ((IFormattable)arg).ToString(format, provider); return arg.ToString(); } } public class FizzBuzz { static void Main() { var fbf = new FizzBuzzFormat(); for (var i = 1; i <= 100; i++) Console.WriteLine(String.Format(fbf, "{0:Z}", i)); } }
256 名前:仕様書無しさん [2010/05/23(日) 02:47:37 ] for i=1,100 do s ="" if( i % 3 == 0 )then s="Fizz" end if( i % 5 == 0 )then s=s.."Buzz" end if( s == "" )then s=i end print( s ) end 安直だなぁ、自分。
257 名前:仕様書無しさん [2010/05/23(日) 04:13:08 ] >>256 その方法が一番だよ シンプルイズベスト 業務のプログラムであんまり凝ったコード書かれると困る
258 名前:仕様書無しさん mailto:sage [2010/05/26(水) 18:28:21 ] 割り算や余剰を使うと計算コストが高い。 平凡にカウンタを使うほうが早い。 正しく解くだけじゃなくて高速性を考えないといけないのにわかってないアホ多すぎ
259 名前:仕様書無しさん [2010/05/26(水) 20:40:51 ] 確かにそうだけど 今の時代はI/O関係なければそんなに速度なんて変わらないから ぱっと見でわかりやすいほうがいいだろ いつの時代だよ
260 名前:仕様書無しさん [2010/05/26(水) 22:45:50 ] using System; class FizzBuzz { static void Main() { var a = new[] { new { Multiple = 3, Indication = "Fizz" }, new { Multiple = 5, Indication = "Buzz" } }; int[] c = new int[a.Length]; for (int i = 1; i <= 100; i++) { bool fb = false; for (int j = 0; j < a.Length; j++) { if (++c[j] == a[j].Multiple) { Console.Write(a[j].Indication); c[j] = 0; fb = true; } } Console.WriteLine(fb ? "" : i.ToString()); } } }
261 名前:仕様書無しさん mailto:sage [2010/05/27(木) 13:32:51 ] >>258 その労力は、検索アルゴリズムの選択とか、枝刈りとか、効果出やすい所につぎこめよw 値を記憶するのは、どうしようもなく高速化最優先の場合か、せいぜい、三角関数のテーブル化あたりだね。
262 名前:仕様書無しさん mailto:sage [2010/05/28(金) 02:01:12 ] Python、短絡評価とジェネレータ内包表記で。 def fizz(x): return x % 3 == 0 and 'Fizz' or '' def buzz(x): return x % 5 == 0 and 'Buzz' or '' def fizzbuzz(x): return ''.join((fizz(x), buzz(x))) or str(x) print '\n'.join(fizzbuzz(x) for x in xrange(1, 101))
263 名前:仕様書無しさん mailto:sage [2010/05/31(月) 13:22:37 ] Pythonでとりあえず標準的に書いてみる 見れば分かるとおり、無限ループするよ i=0 while True: print i, if i%3==0: print "Fizz", if i%5== 0: print "Buzz", print '\n' i=i+1
264 名前:仕様書無しさん mailto:sage [2010/05/31(月) 13:24:29 ] あれ?スペースが消えた あ、全角じゃないとだめなのか スレ汚ししてすいません
265 名前:仕様書無しさん mailto:sage [2010/05/31(月) 13:29:59 ] >>263-264 こう書きたかったんだろうけど、iの値が常に表示されてしまう i=0 while True: print i, if i%3==0: print "Fizz", if i%5== 0: print "Buzz", print '\n' i=i+1
266 名前:仕様書無しさん mailto:sage [2010/05/31(月) 13:31:13 ] [1から100まで]ってのは仕様だからそれを満たさないと失格だよぅ
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 試験問題ほか まともなプログラマーなら幅優先探索ぐらい知ってるから当然のことながら解くことが出来るよな