[表示 : 全て 最新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

言語自由

77 名前:仕様書無しさん mailto:sage [2008/05/06(火) 20:43:39 ]
>>75
掲示板に投稿するとオフサイドルールが・・・


78 名前:75 mailto:sage [2008/05/06(火) 20:45:28 ]
>>77にいじめられたぉ

助けてほしいぉ

79 名前:可能な限り長く書いてみたw mailto:sage [2008/05/06(火) 22:13:02 ]
//1/4
int func_fz(int int_st = 1,int_fn = 100){

if(int_st >= int_fn) return -1;
sz_buff = int_fn - int_st +2;

//文字列の配列を宣言
char* str_guard = "guard";
char** rly_fb = new(sz_buff);
(char** + sz_buff) = *guard;

//作業変数を宣言
char pt_st = rly_fb;
char pt_tgt = rly_fb;
char* str_fizz = "fizz";
char* str_buzz = "buzz";
char* str_none = "";

80 名前:仕様書無しさん mailto:sage [2008/05/06(火) 22:13:43 ]
//2/4
//表示する数字の変数
int tgt_num = int_st;

//変換メソッド
do{
bool b_fizz=false,b_buzz=false;
char* str_out = str_none;

if(tgt_num%3 == 0) b_fizz = true;
if(tgt_num%5 == 0) b_buzz = true;

if(!(b_fizz || b_buzz)){
char* str_out = ltoa(tgt_num);
str_fb = new(str_num);
str_fb = str_out;
}

81 名前:仕様書無しさん mailto:sage [2008/05/06(火) 22:14:24 ]
//3/4
else{
char* tmp_fizz = "\0";
char* tmp_buzz = "\0";
char* pt_out = str_out;

if(b_fizz) tmp_fizz = str_fizz;
if(b_buzz) tmp_buzz = str_buzz;

while(tmp_fizz != '\0'){
pt_out++ = tmp_fizz++;
}
while(tmp_buzz != '\0'){
pt_out++ = tmp_buzz++;
}
*pt_out = '\0';

*pt_tgt++ = pt_out;

82 名前:仕様書無しさん mailto:sage [2008/05/06(火) 22:16:23 ]
//4/4
}while(*pt_tgt != guard)

pt_tgt = pt_st;

//表示
do{
printf("\s\n"pt_tgt++);
}while(*pt_tgt != guard);

return 0;

}//環境無いからデバッグして無い。もしかしたら動くかも?

83 名前:仕様書無しさん mailto:sage [2008/05/06(火) 22:39:11 ]
# そんじゃ、pythonで

for i in range(1, 101):
  if i % 3 == 0 and i % 5 == 0:
    print 'FizzBuzz'
  elif i % 3 == 0:
    print 'Fizz'
  elif i % 5 == 0:
    print 'Buzz'
  else:
    print i

84 名前:仕様書無しさん mailto:sage [2008/05/06(火) 22:59:20 ]
# rubyで

for i in 1..100
  if i % 3 == 0 && i % 5 == 0
    print("FizzBuzz\n")
  elsif i % 3 == 0
    print("Fizz\n")
  elsif i % 5 == 0
    print("Buzz\n")
  else
    print(i, "\n")
  end
end

85 名前:仕様書無しさん mailto:sage [2008/05/07(水) 01:49:10 ]
void fizzbuzz(int num) {
if (num)  {
fizzbuzz(num-1);

switch( (((num % 5) == 0) << 1) | ((num % 3) == 0) ) {
case 0: printf("%d\n", num); break;
case 1: printf("fizz\n"); break;
case 2: printf("buzz\n"); break;
case 3: printf("fizzbuzz\n"); break;
}
}
}

void main() { fizzbuzz(100); }



86 名前:仕様書無しさん [2008/05/07(水) 04:44:01 ]
#include <stdio.h>

int main(int argc,int argv) {
 for (argc=1;argc<=100;argc++) {
  switch(argv=argc%15) {
   case 0:
   case 3:
   case 6:
   case 9:
   case 12:
    printf("Fizz");
    if (argv) break;
   case 5:
   case 10:
    printf("Buzz");
    break;
   default:
    printf("%d",argc);
    break;
  }
  printf("¥n");
 }
 return (0);
}


87 名前:仕様書無しさん mailto:sage [2008/05/07(水) 05:36:56 ]
============================
俺用しおり
             ここまで暗記
============================

88 名前:仕様書無しさん [2008/05/07(水) 12:26:29 ]
let rec fizzbuzz n =
 let num = string_of_int n in
 let fizz = if (n mod 3 = 0) then "Fizz" else "" in
 let buzz = if (n mod 5 = 0) then "Buzz" else "" in
 match n with
 101-> ()
 |_-> if (n mod 3 <> 0 ) then
     if (n mod 5 <> 0) then
    print_string num;
    print_string fizz;
    print_string buzz;
    print_string "\n";
    fizzbuzz (n+1)
in fizzbuzz 1

89 名前:仕様書無しさん [2008/05/07(水) 18:02:17 ]
コードを極限まで短くしたのを見てみたい。
言語はCで

90 名前:仕様書無しさん mailto:sage [2008/05/07(水) 18:17:36 ]
main(){int i;for(i=1;i<=100;i++)printf(i%3?i%5?"%d\n":"buzz\n":i%5?"fizz\n":"fizzbuzz\n",i);}

これ以上短くなるかな

91 名前:仕様書無しさん mailto:sage [2008/05/07(水) 19:56:50 ]
main(){inti;while(++i<101)printf(i%3?i%5?"%d¥n":"buzz¥n":i%5?"fizz¥n":"fizzbuzz¥n",i);}

92 名前:仕様書無しさん mailto:sage [2008/05/07(水) 20:08:11 ]
>>90
ワロタ
三項演算子は思いついたがそんな使い方があるとは

93 名前:仕様書無しさん mailto:sage [2008/05/07(水) 21:28:49 ]
int i;は外に出してグローバルにしないと初期値が不定になるぞ。


94 名前:仕様書無しさん mailto:sage [2008/05/07(水) 21:33:35 ]
パソコン買って半年の超初心者の俺が何故かこのスレに来ました。


ここにいる人達はどう考えても天才ですよね?

95 名前:仕様書無しさん mailto:sage [2008/05/07(水) 23:09:24 ]
>94
いいえ違います

ここにいる人達は毎日
おい○○、あれやっておけ
おい○○、明日までにデスマでこれデバレ
おい○○、パン買って来いあと報告書ここ修正
おい○○、出張いってこい
おい○○、よかったな某大手Nに売られるぞw

こんな感じで虐げられた下級民族以下の扱いを
毎日受けています





96 名前:仕様書無しさん mailto:sage [2008/05/07(水) 23:41:04 ]
超初心者がこんなスレにたどり着いた方法を知りたい

97 名前:仕様書無しさん mailto:sage [2008/05/08(木) 21:24:17 ]
酔った勢いでひまわり(日本語プログラミング言語)で書いてみた


答え=「」
足す数=0
100回(
  足す数=足す数+1
一時3=足す数%3
もし、一時3=0 ならば、答え=答え&「FIZZ」
一時5=足す数%5
もし、一時5=0 ならば、答え=答え&「BUZZ」
もし、(一時3<>0)かつ(一時5<>0)ならば、答え=答え&足す数
答え=答え&「¥n」

答えと、表示。


分かりにくっ!
プログラムとしても日本語としても分かりにくっ!

なんかね、根っこがBASICで、それを日本語に訳しただけって感じがするよ、ひまわり。
コンピュータからして英語圏発祥だから仕方ないのかなあ。

98 名前:仕様書無しさん mailto:sage [2008/05/09(金) 02:17:58 ]
じゃLispで。

(defun fizzbuzz (n)
(labels ((rec (n acc)
(if (= n 0)
acc
(rec (1- n)
(cons
(or (fzchk n 15 "fizzbuzz")
(fzchk n 3 "fizz")
(fzchk n 5 "Buzz")
n)
acc)))))
(rec n nil)))

(defun fzchk (n x str)
(and (= (mod n x) 0) str))

99 名前:仕様書無しさん mailto:sage [2008/05/09(金) 02:30:59 ]
Pythonで。 ちょっとズルか?
for i in range(100):print i+1,i%3/2*"Fizz"+i%5/4*"Buzz"or-~i


100 名前:仕様書無しさん mailto:sage [2008/05/09(金) 17:49:03 ]
>>90
ttp://www.shinh.org/p.rb?FizzBuzz#C

73B まで縮むっぽいよ

101 名前:仕様書無しさん mailto:sage [2008/05/14(水) 01:21:02 ]
久しぶりにJavaでFizzBuzz問題のプログラムを書いてみたら、131バイトで書けた。
133バイトが最小だと思ってたけど、何か言語仕様変わったのかな。

試しにanarchy golfに登録してみたら、ちゃんと登録できたし
golf.shinh.org/p.rb?FizzBuzz

102 名前:仕様書無しさん mailto:sage [2008/05/14(水) 23:06:37 ]
main(i){
for(;i<101;puts(i++%5?"":"Buzz"))
printf(i%3?i%5?"%d":"":"Fizz",i);
}

103 名前:仕様書無しさん mailto:sage [2008/05/17(土) 08:18:49 ]
with sq as(
    select rownum n
    from dual
    connect by
        level<=100
)
select case
        when mod(n,5)=0 and mod(n,3)=0
        then 'FizzBuzz'
        when mod(n,3)=0
        then 'Fizz'
        when mod(n,5)=0
        then 'Buzz'
        else to_char(n)
    end
from sq


104 名前:新入り [2008/05/18(日) 14:02:12 ]
ここに神がいると聞き
www.nicovideo.jp/watch/sm3343017">【ニコニコ動画】ムービーメーカー編集後 aviutlにはいらない・・・

105 名前:仕様書無しさん mailto:sage [2008/05/19(月) 00:42:20 ]
プログラミングのジャンルと難易度(および Web プログラミング批判)
d.hatena.ne.jp/scinfaxi/20080517/1210970917



106 名前:仕様書無しさん mailto:sage [2008/05/19(月) 03:14:45 ]
#include<stdio.h>
void main(i){for(i=1;i<101;){
if(i%5&&i%3)printf("%d",i);
printf(i%3?"":"Fizz");
printf(i++%5?"":"Buzz");
puts("");}}

俺の技量ではとても100Bytesは切れん。>>102が神すぐる。
>>90の73Bytesってのはどんなバケモノコードか見てみたいな。

107 名前:106 mailto:sage [2008/05/19(月) 03:15:40 ]
>>90じゃなくて>>100だった。。

108 名前:仕様書無しさん mailto:sage [2008/05/22(木) 22:57:06 ]
main(a){
while(++a<100){
printf("\n%d\r",a);
if(!(a%3))printf("Fizz");
if(!(a%5))printf("Bizz");
}}

最初の改行が削れなかった。

109 名前:仕様書無しさん mailto:sage [2008/05/23(金) 02:00:16 ]
なんで未初期化のまま使ってるんだろうと思ってたが、
mainの第1引数であることに今さら気づいたorz


110 名前:仕様書無しさん [2008/05/23(金) 08:30:46 ]



111 名前:仕様書無しさん mailto:sage [2008/05/23(金) 23:39:50 ]
コードサイズよりバイナリサイズを削ろうよ
とか思う俺はKY?

112 名前:仕様書無しさん mailto:sage [2008/05/24(土) 00:25:22 ]
>>111
バイナリゴルフもやる人はやるみたい

あと、ちょっと違うかもだけど、例えばあなごるなら
golf.shinh.org/l.rb?out
golf.shinh.org/l.rb?z8b
こういうのもあるよ

113 名前:仕様書無しさん mailto:sage [2008/05/24(土) 01:42:25 ]
そういやJavaScript出てなくね?
<script type="text/javascript">
for(i = 1; i <=100; ++i)
{
if(i%3!=0 && i%5!=0) {
document.write(i);
} else {
if(i%3==0)
document.write("Fizz");
if(i%5==0)
document.write("Buzz");
}
document.write("<br>");
}
</script>

114 名前:仕様書無しさん mailto:sage [2008/05/24(土) 12:38:59 ]
main(i){while(i<101){printf("%d\r%s%s\n",i++,i%3?"":"Fizz",i%5?"":"Buzz");}}

115 名前:仕様書無しさん mailto:sage [2008/05/24(土) 22:49:43 ]
>>111
KYだなぁ。たぶんお前が思ってるよりずっと大きな意味で。



116 名前:仕様書無しさん mailto:sage [2008/05/24(土) 23:57:45 ]
main(i,j){printf(i%3*i%5?"%d\n":"%.*s\n",i%3*i%5?i:i%15?4:8,j+(i%3?4:0));if(i<100)main(i+1,"FizzBuzz");}
main(i,j){printf(i%3*i%5?"%d\n":"%.*s\n",i%3*i%5?i:i%15?4:8,j+(i%3?4:0));i<100?main(i+1,"FizzBuzz"):0;}
char *a="%d\0FizzBuzz\0Fizz";main(i){for(;i<101;i++)printf((i%15?i%3?i%5?0:7:12:3)+a,i),puts("");}
main(i,a){i<101?printf((i%15?i%3?i%5?"%d":a+4:a+9:a),i),puts(""),main(i+1,"FizzBuzz\0Fizz"):0;}
main(i,a){i<101?printf((i%15?i%3?i%5?"%d\n":a+10:a:a+6),i),main(i+1,"Fizz\n\0FizzBuzz\n"):0;}
main(i,j){if(i<101)printf(i%3?i%5?"%d":j:j+1,i),puts(i%5?"":j+6),main(i+1,"\0Fizz\0Buzz");}
main(i,j){i<101?printf(j%3?j%5?"%d":"":"Fizz",i)+puts(j%5?"":"Buzz"),main(i+1,(i+1)%15):0;}
char*a="\0Buzz\0Fizz";main(i){for(;i<101;puts(!(i++%5)+a))printf(i%3?i%5?"%d":a:a+6,i);}
main(i,j){if(i<101)printf(i++%3?j?"%d":"":"Fizz",i)+puts("\0Buzz"+!j),main(i,i%5);}
main(i,j){i<101?printf(i++%3?j?"%d":"":"Fizz",i)+puts("\0Buzz"+!j),main(i,i%5):0;}
main(i){for(;i<101;puts(i++%5?"":"Buzz"))printf(i%3*i%5?"%d":i%3?"":"Fizz",i);}
main(i,j){for(;j=i%5,i<101;puts("Buzz"-!!j))printf(i++%3?j?"%d":"":"Fizz",i);}
main(i,j){for(;j=i%5,i<101;puts("Buzz"-!!j))printf(i++%3?j?"%d":0:"Fizz",i);}
main(i){for(;i<101;puts("\0Buzz"+!(i++%5)))printf(i%3?i%5?"%d":0:"Fizz",i);}
main(i){for(;i<101;puts("Buzz"-!!(i++%5)))printf(i%3?i%5?"%d":0:"Fizz",i);}
main(i){for(;i<101;puts(i++%5?"":"Buzz"))printf(i%3?i%5?"%d":"":"Fizz",i);}
main(i){for(;i<101;puts(i++%5?"":"Buzz"))printf(i%3?i%5?"%d":0:"Fizz",i);}

コンパイラ依存の力技含め色々やったが、どうしても74文字が限界。
73文字ってどうやるのだろう。。

117 名前:仕様書無しさん mailto:sage [2008/05/25(日) 15:14:37 ]
¥rを使うダーティーな奴がありなら、これでもいけたよ。
main(i){for(;i<101;puts(i++%5?"":"Buzz"))printf(i%3?"%d¥r":"Fizz",i);}

118 名前:仕様書無しさん mailto:sage [2008/05/26(月) 23:16:29 ]
>>115
K神奈川県
Y横浜市


119 名前:仕様書無しさん mailto:sage [2008/05/29(木) 22:41:54 ]
横須賀市ですね、わかります

120 名前:仕様書無しさん mailto:sage [2008/05/30(金) 04:02:57 ]
熊本県八代市のこともたまには思い出してあげてください。

121 名前:仕様書無しさん mailto:sage [2008/06/01(日) 21:31:33 ]
どう見ても京都府八幡市です。
本当にありがとうございました。

122 名前:仕様書無しさん mailto:sage [2008/06/02(月) 00:04:09 ]
京都といえば
八ツ橋だろ


123 名前:仕様書無しさん mailto:sage [2008/06/04(水) 00:45:13 ]
神戸の
洋館です

124 名前:仕様書無しさん mailto:sage [2008/06/06(金) 13:27:46 ]
腐れ
ヨーグルト

125 名前:仕様書無しさん mailto:sage [2008/06/06(金) 14:57:11 ]
後楽園
遊園地



126 名前:仕様書無しさん mailto:sage [2008/09/02(火) 00:20:45 ]
>>125
後楽園
遊園地で、ぼ
くとあくし


127 名前:仕様書無しさん mailto:sage [2008/10/03(金) 02:33:52 ]
#include <iostream>
int main() {
    for (int i = 1; i <= 100; i++) {
        if ((i % 3 != 0) && (i % 5 != 0)) {
            std::cout << i;
        } else {
            if (i % 3 == 0) std::cout << "Fizz";
            if (i % 5 == 0) std::cout << "Buzz";
        }
        std::cout << std::endl;
    }
}

128 名前:仕様書無しさん [2009/01/14(水) 13:48:08 ]
ほしゅ

129 名前:仕様書無しさん mailto:sage [2009/01/14(水) 14:17:20 ]
smalltalkキボソ

130 名前:仕様書無しさん mailto:sage [2009/01/14(水) 20:29:34 ]
>>10
とりあえず何も考えずに作ったなべあつ

#include<stdio.h>

int include3(int i){
 int q,r;
 q = i;
 while(q > 0){
  r = q % 10;
  if(r == 3){return 1;}
  q /= 10;
 }
 return 0;
}

int main(){
 int i;
 for(i = 1; i <= 40; ++i){
  printf("%d",i);
  if((i % 3 == 0) || include3(i)){printf("!");}
  printf("\n");
 }
 return 0;
}


131 名前:仕様書無しさん mailto:sage [2009/01/14(水) 21:50:52 ]
#!/bin/bash
v=1
fz="Fizz"
bz="Buzz"
while [ $v -le 100 ];
do
 d=""
 three=`expr $v % 3`
 five=`expr $v % 5`
 
 if [ $three -eq 0 ]; then
  d="$fz"
 fi
 if [ $five -eq 0 ]; then
  d="$d$bz"
 fi
 if [ -z "$d" ]; then
  echo "$v"
 else
  echo "$d"
 fi
 v=`expr $v + 1`
done


132 名前:仕様書無しさん mailto:sage [2009/01/15(木) 21:50:07 ]
Smalltalk

(1 to: 100) collect: [:n |
  | out |
  out := ''.
  n \\ 3 = 0 ifTrue: [out := out, 'Fizz'].
  n \\ 5 = 0 ifTrue: [out := out, 'Buzz'].
  out isEmpty ifTrue: [out := n].
  out
]

133 名前:仕様書無しさん [2009/01/19(月) 10:19:53 ]
J

wd&>((0 i.~15 3 5|]){((;;])'Fizz';'Buzz'),<)"0>:i.100


134 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

135 名前:仕様書無しさん mailto:sage [2009/01/19(月) 23:08:51 ]
>>134
こんな基地外、死ねばいいのに
d.hatena.ne.jp/yaneurao/20080619



136 名前:仕様書無しさん mailto:sage [2009/01/20(火) 09:58:08 ]
まったくだ。死ねばいいのにね。
このコピペしてる莫迦。

137 名前:仕様書無しさん [2009/01/21(水) 16:03:36 ]
こんにちは、JONY.Cです。
最近夜遅くまでゲームしてしまい朝起きるのがつらいです。
夜更かしは美容と良い仕事の大敵なんでほどほどにしないと・・・。

さてさて本日からe-AMUSEMENT PASSメンバーズサイトでプレー画面のカスタマイズが、
そして携帯サイトでカスタマイズのレーンカバーが公開されました。
その中でも少々分かりにくい「THE TROOPER'S JOURNEY」の条件ですが・・・。
前回のヒントはわざとらしすぎて分かり易すぎるとチーム員からの指摘されたので
今回はプログラマらしく暗号で条件を公開したいと思います。

-----------------------
38 3B 33 08 36 25 32 36
08 39 22 3A 69 6A 62 77
18 05 77 38 3B 33 08 24
3F 38 27 08 39 22 3A 69
6A 64 67

key=0x57
-----------------------

上の暗号を解くと35文字の文字列になります。
その文字列が今回のレーンカバー「THE TROOPER'S JOURNEY」の出現条件のヒントになっています。
ということで時間がある方は暗号を解いてみてはどうでしょうか?
プログラマじゃないとなかなか解けない暗号かもです・・・・^^;
答え合わせは次の私のブログ当番の時に覚えていたら発表します。

・・・・とはいえ本来の目的である「THE TROOPER'S JOURNEY」の条件はうすうすばれているようですが・・・・。

138 名前:仕様書無しさん mailto:sage [2009/01/21(水) 17:39:37 ]
old_area_numって何?

139 名前:仕様書無しさん mailto:sage [2009/01/21(水) 17:45:44 ]
old_shop_numってなに?

140 名前:仕様書無しさん [2009/01/23(金) 11:48:33 ]
>>137
一緒に音ゲー板に帰るぞ

ていうかとっくに解析されてるのにいまさらマ板に持ってくるなよ

141 名前:仕様書無しさん mailto:sage [2009/01/23(金) 12:26:53 ]
「16進×35バイト」らしき元データが35文字になるとか
見え透いてる。

142 名前:仕様書無しさん mailto:sage [2009/01/24(土) 19:39:37 ]
#include<stdio.h>
template<int N, int N3, int N5> struct FizzBuzz;
template<int N3, int N5> struct FizzBuzz<101, N3, N5> {
static void f() {}
};
template<int N, int N3, int N5> struct FizzBuzz<N, N3, N5> {
static void f() { printf("%d\n", N); FizzBuzz<N+1, N3-1, N5-1>::f(); }
};
template<int N> struct FizzBuzz<N, 0, 0> {
static void f() { puts("FizzBuzz"); FizzBuzz<N+1, 2, 4>::f(); }
};
template<int N, int N5> struct FizzBuzz<N, 0, N5 > {
static void f() { puts("Fizz"); FizzBuzz<N+1, 2, N5-1>::f(); }
};
template<int N, int N3> struct FizzBuzz<N, N3, 0> {
static void f() { puts("Buzz"); FizzBuzz<N+1, N3-1, 4>::f(); }
};
int main() { FizzBuzz<1, 2, 4>::f(); return 0; }

143 名前:仕様書無しさん [2009/01/25(日) 14:29:20 ]
昨日、プログラムを始めた俺がチャレンジしたが、途中でよくわかなくなってしまった。
指摘とかしてもらえる?
<?php
for($a = 1; $a <= 100; $a++){
if(($a % 15)===0){
print "FizzBuzz";}
}elseif(($a % 3)===0){
print "Fizz";
}elseif(($a % 5)===0){
print "Buzz";}
}else{
print $a;}
{
?>

144 名前:仕様書無しさん mailto:sage [2009/01/25(日) 15:03:33 ]
if () {
print "...";}
}elseif

}が1つ余計じゃない?


145 名前:仕様書無しさん mailto:sage [2009/01/25(日) 15:38:05 ]
>>143
あからさまに括弧の対応が変。
最初からやり直せ。



146 名前:仕様書無しさん [2009/01/25(日) 17:48:27 ]
>>144
thx
>>145
そうします。。thx

147 名前:仕様書無しさん mailto:sage [2009/01/25(日) 18:42:08 ]
2chに書き込むときに消えただけかもしれないけど、
ちゃんとインデントして、括弧の位置をそろえると、
無駄な作業を減らせるよ

148 名前:仕様書無しさん mailto:sage [2009/01/25(日) 23:02:54 ]
viで%押せば済むだろ。

149 名前:仕様書無しさん mailto:sage [2009/01/26(月) 09:51:37 ]
>>148


150 名前:仕様書無しさん mailto:sage [2009/01/27(火) 04:44:11 ]
#/bin/sh
N=1
while [ $N -le 100 ]
do
R3=`expr $N % 3`
R5=`expr $N % 5`
if [ $R3 -eq 0 -a $R5 -eq 0 ]
then
echo FizzBuzz
elif [ $R3 -eq 0 ]
then
echo Fizz
elif [ $R5 -eq 0 ]
then
echo Buzz
else
echo $N
fi
N=`expr $N + 1`
done


151 名前:仕様書無しさん mailto:sage [2009/01/27(火) 21:53:31 ]
無駄なfork&exec大杉

152 名前:仕様書無しさん mailto:sage [2009/02/05(木) 00:42:24 ]
for(int i = 1, mod3 = 3, mod5 = 5; i <= 100; i++){
if(--mod3 == 0){ mod3 = 3; System.out.print("Fizz"); }
if(--mod5 == 0){ mod5 = 5; System.out.print("Buzz"); }
System.out.println(mod3 == 3 || mod5 == 5 ? "" : i);
}

153 名前:仕様書無しさん mailto:sage [2009/02/14(土) 17:52:59 ]
Pythonで、リスト内包表記を使う以外は割と素直にやってみる。

def fizzbuzz(n):
    if n % 15 == 0: return 'FizzBuzz'
    if n %  5 == 0: return 'Buzz'
    if n %  3 == 0: return 'Fizz'
    return n

for x in [fizzbuzz(n) for n in range(1,101)]:
    print x


154 名前:仕様書無しさん [2009/03/09(月) 22:16:08 ]
// これ、もっと簡単になる?

using System;
using System.Linq;

class Program {
    static void Main(string[] args) {
        var n = from x in Enumerable.Range(1, 100) select new { Num = x, Print = "" };
        var result = from p in n
            join q in from x in n where x.Num % 3 == 0 select new { x.Num, Print = "Fizz" }
            on p.Num equals q.Num into r
            from s in r.DefaultIfEmpty(new { p.Num, Print = "" })
            join t in from x in n where x.Num % 5 == 0 select new { x.Num, Print = "Buzz" }
            on s.Num equals t.Num into u
            from v in u.DefaultIfEmpty(new { s.Num, Print = "" })
            select new { s.Num, Print = s.Print + v.Print }
            into w select w.Print == "" ? w.Num.ToString() : w.Print;
       
        foreach (var i in result)
            Console.WriteLine(i);
    }
}

155 名前:仕様書無しさん mailto:sage [2009/03/12(木) 05:37:27 ]
むしろ、よくそんな書き方が出来たなと言いたい
フツーに書いた方が簡単な希ガスw



156 名前:うゆ ◆e6.oHu1j.o mailto:sage [2009/03/13(金) 20:49:29 ]
Ozyでぐぐれかす

157 名前:仕様書無しさん mailto:sage [2009/03/13(金) 23:16:03 ]
失せろカス

158 名前:仕様書無しさん mailto:sage [2009/03/15(日) 23:48:00 ]
#! /usr/bin/perl
foreach(1..100){
print 'Fizz' if $_ % 3;
print 'Buzz' if $_ % 5;
print $_ unless $_ % 3 or $_ % 5;
print "\n";
}

恥ずかしいくらい単純すぎるかな…

159 名前:仕様書無しさん mailto:sage [2009/03/16(月) 00:30:30 ]
恥ずかしいくらい単純なミスしてた…orz

160 名前:仕様書無しさん mailto:sage [2009/03/16(月) 07:37:32 ]
三行以上のプログラムにはバグはつきものさ

161 名前:仕様書無しさん mailto:sage [2009/03/25(水) 23:43:51 ]
using System;
using System.Collections.Generic;

class Program {
    [STAThread]
    static void Main() {
        const int max = 100;
        var zz = new[] {
            new KeyValuePair<int, string>(3, "Fizz"),
            new KeyValuePair<int, string>(5, "Buzz")
        };
        for (var i = 1; i <= max; i++) {
            var f = true;
            for (var j = 0; j < zz.Length; j++) {
                if (i % zz[j].Key == 0) {
                    Console.Write(zz[j].Value);
                    f = false;
                }
            }
            if (f)
                Console.Write(i);
            Console.WriteLine();
        }
    }
}

162 名前:仕様書無しさん mailto:sage [2009/04/17(金) 20:08:51 ]
/* いまさらだけど、C言語でif無し */
#include <stdio.h>
void main(void){
 int i ;
 for(i=1 ; i<=100 ; i++){
  ((i%3)==0 && (printf("Fizz"),1)) + ((i%5==0) && (printf("Buzz"),1))!=0 || printf("%d", i) ;
  printf("\n") ;
 }
}


163 名前:仕様書無しさん mailto:sage [2009/04/25(土) 01:04:12 ]
#include<stdio.h>

void fizz(){static int i=1;if(i==0)printf("Fizz");i=(i+1)%3;}
void buzz(){static int i=1;if(i==0)printf("Buzz");i=(i+1)%5;}
void num() {static int i=1;if(i%3!=0&&i%5!=0)printf("%d",i);i++;}
void ret() {printf("\n");}

#define repeat10(x) x x x x x x x x x x

int main()
{
repeat10(repeat10(fizz();buzz();num();ret();));
}


164 名前:仕様書無しさん mailto:sage [2009/04/25(土) 02:16:20 ]
#include<stdio.h>
int i=1;
void fb(){printf("FizzBuzz\n");}
void f(){printf("Fizz\n");}
void b(){printf("Buzz\n");}
void n(){printf("%d\n",i);}
class f_list
{
public:

f_list *nxt;
void (*f)();
f_list(void (*x)()){nxt=NULL;f=x;}
f_list *next(){f();i++;return nxt;}
};
#define repeat10(x) x x x x x x x x x x
int main()
{
f_list *p;
f_list *s;
s=p= new f_list(n);p->nxt= new f_list(n);p=p->nxt;
p->nxt=new f_list(f);p=p->nxt;p->nxt=new f_list(n);p=p->nxt;
p->nxt=new f_list(b);p=p->nxt;p->nxt=new f_list(f);p=p->nxt;
p->nxt=new f_list(n);p=p->nxt;p->nxt=new f_list(n);p=p->nxt;
p->nxt=new f_list(f);p=p->nxt;p->nxt=new f_list(b);p=p->nxt;
p->nxt=new f_list(n);p=p->nxt;p->nxt=new f_list(n);p=p->nxt;
p->nxt=new f_list(f);p=p->nxt;p->nxt=new f_list(n);p=p->nxt;
p->nxt=new f_list(fb);p=p->nxt;p->nxt=s;
repeat10(repeat10(s=s->next();));
}

165 名前:仕様書無しさん mailto:sage [2009/04/25(土) 06:37:45 ]
15個並べたのか



166 名前:164 mailto:sage [2009/04/25(土) 07:30:10 ]
FizzBuzzを実装できるほど優秀なプログラマであるお前らに聞きたいんだが、
最初はfb(),f(),b(),n()といった関数の戻り値を関数ポインタにして
関数自身に次の関数を返させることで循環リストを作るつもりだったんだ。

func_type f1(){ do_something;return f2;}
func_type f2(){ do_something;return f3;}
func_type f3(){ do_something;return f1;}

func_type fp=f1;
fp=fp();
fp=fp();
fp=fp();
...

でもfunc_typeをどう宣言していいかわからなかったのでf_listなんてクラスを導入せざるを得なかった。
func_typeはどうやって宣言すればいいの?そもそも無理なの?


167 名前:仕様書無しさん mailto:sage [2009/04/26(日) 19:02:12 ]
def Fizz(x):
    return 'Fizz'
def Buzz(x):
    return 'Buzz'
def FizzBuzz(x):
    return 'FizzBuzz'
def N(x):
    return x
print ','.join([str([FizzBuzz, N, N, Fizz, N, Buzz, Fizz, N, N, Fizz, Buzz, N, Fizz, N, N][i % 15](i)) for i in range(1,101)])

168 名前:仕様書無しさん mailto:sage [2009/04/26(日) 19:17:12 ]
あ〜…投稿しておいてなんだけど、str()はN(x)の中に書いた方が良かったか。
ついでに読みやすく分解。

def Fizz(x):
    return 'Fizz'
def Buzz(x):
    return 'Buzz'
def FizzBuzz(x):
    return 'FizzBuzz'
def N(x):
    return str(x)

func_list = [FizzBuzz, N, N, Fizz, N, Buzz, Fizz, N, N, Fizz, Buzz, N, Fizz, N, N]

def mapfunc(i):
    func = func_list[i % 15]
    return func(i)

ary = map(mapfunc, range(1,101))

print ','.join(ary)

169 名前:仕様書無しさん mailto:sage [2009/04/26(日) 22:49:00 ]
%sed 's/ /\  /g' fizzbuzz.cs
using System;

class Program {
    static void Main() {
        for (int n = 1, c3 = 1, c5 = 1; n <= 100; n++, c3++,
c5++) {
            bool fizz = c3 == 3;
            bool buzz = c5 == 5;
            if (fizz) {
                Console.Write("Fizz");
                c3 = 0;
            }
            if (buzz) {
                Console.Write("Buzz");
                c5 = 0;
            }
            if (! (fizz || buzz))
                Console.Write(n);
            Console.WriteLine();
        }
    }
}

170 名前:仕様書無しさん mailto:sage [2009/05/16(土) 01:04:18 ]
#include<stdio.h>

int main(void)
{
for(int i=1;i<=100;++i)
{
if(!(i%15))puts("Fizz Buzz");
else if(!(i%5))puts("Buzz");
else if(!(i%3))puts("Fizz");
else printf("%d\n",i);
}
return 0;
}

初心者がちょっとそれっぽく書いてみた

171 名前:仕様書無しさん mailto:sage [2009/05/16(土) 22:57:37 ]
>>170
それっぽくはあるけど、良いコードじゃないぞ
実装するなら、実装意図を明確にするべきで、

if (!(i%15))

この記述で無理矢理論理判断に持ち込むのは、良くない例
たしかにコレでも動くけども、
このコードでは 15で割ったあまりが ==0である、ことに意味がある
関数の戻りが0/1で戻ってくるから、それを論理判断にしているわけではない
そこをはき違えると、意図が不明確で、他人が読みづらいコードになる

172 名前:仕様書無しさん mailto:sage [2009/05/17(日) 23:12:18 ]
Cでは当たり前の記述だがな。

173 名前:仕様書無しさん mailto:sage [2009/05/17(日) 23:32:19 ]
XXでは当たり前、で思考停止してるから、糞コードが減らないんじゃね?w

174 名前:仕様書無しさん mailto:sage [2009/05/17(日) 23:36:21 ]
コードに15という定数を使っているのは今一

175 名前:仕様書無しさん mailto:sage [2009/05/18(月) 21:52:46 ]
#include<stdio.h>

int main(void)
{
for(int i=1;i<=100;++i)
{
if(i%3==0&&i%5==0)
puts("Fizz Buzz");
else if(i%5==0)
puts("Buzz");
else if(i%3==0)
puts("Fizz");
else
printf("%d",i);
}
}

初心者が意見を取り入れて普通に書いた



176 名前:仕様書無しさん mailto:sage [2009/05/20(水) 20:57:48 ]
#include<stdio.h>

#define FIZZ_MOD_NUMBER 3
#define BUZZ_MOD_NUMBER 5
#define IS_FIZZ_NUMBER(x) ((x)%FIZZ_MOD_NUMBER==0)
#define IS_BUZZ_NUMBER ((x)%BUZZ_MOD_NUMBER==0)
#define IS_FIZZ_BUZZ_NUMBER(x) (IS_FIZZ_NUMBER(x) && IS_BUZZ_NUMBER(x))
#define FIZZ_STRING "Fizz"
#define BUZZ_STRING "Buzz"
#define FIZZBUZZ_STRING FIZZ_STRING " " BUZZ_STRING

int main()
{


177 名前:仕様書無しさん mailto:sage [2009/05/20(水) 20:59:00 ]
途中で書き込んじまったorz
修正するのもメンドクサイから放置しよ。







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

前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