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

言語自由

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
修正するのもメンドクサイから放置しよ。


178 名前:仕様書無しさん mailto:sage [2009/06/20(土) 18:14:32 ]
多分最速、既出?
#include <stdio.h>
void main(void)
{
int i=0,end=100;
for(;;){
i++; printf("%d\n",i); //if(i==end)break;
i++; printf("%d\n",i); //if(i==end)break;
i++; printf("Fizz\n"); //if(i==end)break;
i++; printf("%d\n",i); //if(i==end)break;
i++; printf("Buzz\n"); //if(i==end)break;
i++; printf("Fizz\n"); //if(i==end)break;
i++; printf("%d\n",i); //if(i==end)break;
i++; printf("%d\n",i); //if(i==end)break;
i++; printf("Fizz\n"); //if(i==end)break;
i++; printf("Buzz\n"); if(i==end)break;
i++; printf("%d\n",i); //if(i==end)break;
i++; printf("Fizz\n"); //if(i==end)break;
i++; printf("%d\n",i); //if(i==end)break;
i++; printf("%d\n",i); //if(i==end)break;
i++; printf("FizzBuzz\n"); //if(i==end)break;
};
}



179 名前:178 mailto:sage [2009/06/20(土) 18:19:20 ]
あー、
100個の結果をそのままprintfした方が早いか... orz
私がバカでした

180 名前:仕様書無しさん mailto:sage [2009/06/20(土) 18:27:44 ]
これ最強。
#include <stdio.h>
void main(void)
{
printf(
"1,2,Fizz,4,Buzz,Fizz,7,8,Fizz,Buzz,11,Fizz,13,14,FizzBuzz,16,17,Fizz,19,Buzz,Fiz"
"z,22,23,Fizz,Buzz,26,Fizz,28,29,FizzBuzz,31,32,Fizz,34,Buzz,Fizz,37,38,Fizz,Buzz"
",41,Fizz,43,44,FizzBuzz,46,47,Fizz,49,Buzz,Fizz,52,53,Fizz,Buzz,56,Fizz,58,59,Fi"
"zzBuzz,61,62,Fizz,64,Buzz,Fizz,67,68,Fizz,Buzz,71,Fizz,73,74,FizzBuzz,76,77,Fizz"
",79,Buzz,Fizz,82,83,Fizz,Buzz,86,Fizz,88,89,FizzBuzz,91,92,Fizz,94,Buzz,Fizz,97,"
"98,Fizz,Buzz"
);
};

181 名前:仕様書無しさん mailto:sage [2009/07/11(土) 07:42:40 ]
main(i){for(;i<101;puts("Buzz"-i*i++%5))printf(i%3?i%5?"%d":0:"Fizz",i);}

182 名前:仕様書無しさん mailto:sage [2009/07/12(日) 04:57:48 ]
>void main(void)
ここで既に警告が出てるぞ。

183 名前:仕様書無しさん mailto:sage [2009/08/04(火) 19:56:50 ]
@echo off
setlocal
set A=0

:LOOP
if %A% EQU 100 goto :END
set /a A=A+1
set /a B=A%%3
set /a C=A%%5
set /a D=B+C
if %D% EQU 0 goto :FB
IF %B% EQU 0 goto :FIZZ
IF %C% EQU 0 goto :BUZZ

echo %A%
goto :LOOP

:FIZZ
echo Fizz
goto :LOOP

:BUZZ
echo Buzz
goto :LOOP

:FB
echo FizzBuzz
goto :LOOP

:END
endlocal
@echo on

184 名前:183 mailto:sage [2009/08/04(火) 20:03:18 ]
>>183はDOS窓用バッチ



185 名前:cobol mailto:sage [2009/09/07(月) 17:08:09 ]
    identification division.
    program-id. fizzbuzz.
    environment division.
    data division.
    working-storage section.
    77 i pic 9(3).
    77 a pic 99.
    01 r3 pic 9.
     88 r3-zero value zero.
    01 r5 pic 9.
     88 r5-zero value zero.
    procedure division.
      perform varying i from 1 by 1 until i > 100
        perform fizzbuzz
      end-perform.
      stop run.
    fizzbuzz.
      divide
        3 into i giving a remainder r3
      end-divide
      divide
        5 into i giving a remainder r5
      end-divide
      if r3-zero and r5-zero then
        display "FizzBuzz" upon console
      else if r3-zero and not r5-zero then
        display "Fizz" upon console
      else if r5-zero and not r3-zero then
        display "Buzz" upon console
      else
        display i upon console
      end-if.

186 名前:仕様書無しさん mailto:sage [2009/09/08(火) 00:03:08 ]
無駄に長いなと思ったらCobolか...

187 名前:仕様書無しさん mailto:sage [2009/09/16(水) 20:54:30 ]
SQL見た時、なんか冗長だな〜COBOLみて〜、と思った。

188 名前:仕様書無しさん mailto:sage [2009/09/16(水) 23:18:17 ]
遊びがてら、出力が汚いのを作ってみた。後悔はしてない。(C言語)

(パターン1)

#include <stdio.h>
#include <memory.h>
int main(void)
{
int i = 0;
char buf[900+1];
char* ptr;
char* end = buf+900;
*end = '\0';
for (ptr=buf;ptr<end;ptr+=9) snprintf(ptr,9,"%6d \n",i++);
for (ptr=buf;ptr<end;ptr+=27) snprintf(ptr,6,"fizz ");
for (ptr=buf+4;ptr<end;ptr+=45) snprintf(ptr,4,"buzz");
printf(buf);
return 0;
}



189 名前:仕様書無しさん mailto:sage [2009/09/16(水) 23:19:50 ]
(パターン2)

#include <stdio.h>
#include <memory.h>
int main(void)
{
//fi zz bu zz _ 1 _ 2 _ fi zz _ 4 _ bu zz _ fi zz _ 7 _ 8 _ fi zz _ bu zz _ 11 _ fi zz _ 13 _ 14 _
char* a = "243410101241013412410101241341012410101";
char* b[5] = {"00","\r\n","fi","bu","zz"};
char* p = a;
while (b[0][0]<='9')
{
 if (*p=='1')
 {
   b[0][0] += (b[0][1]-'0' + 1)/10;
   b[0][1] = '0' + (b[0][1]-'0'+1) % 10;
 }
 printf(b[*p++-'0']);
 if (!*p) p = a;
}
return 0;
}


190 名前:仕様書無しさん mailto:sage [2009/09/17(木) 21:36:42 ]
なんでこの問題が有名なのかイマイチわからんのだが、
重複さえ気をつければ他に別にひっかけがあるようなもんでは無いよね。

191 名前:仕様書無しさん mailto:sage [2009/09/17(木) 22:03:23 ]
引っかけがあるように見えるので、しばらく考えるが、
実は、引っかけがないことに気付く。

これが、最大の引っかけ。

192 名前:仕様書無しさん mailto:sage [2009/09/17(木) 23:17:09 ]
>>190-191
そもそもプログラマとしての素養を見るための問題の例として挙げられたものだから
引っかけとか特に必要ないんだよ

193 名前:仕様書無しさん mailto:sage [2009/09/18(金) 23:12:18 ]
普通のプログラマなら2分以内で書けて当たり前という程度には簡単。

194 名前:仕様書無しさん mailto:sage [2009/09/19(土) 14:18:17 ]
「2分」ってよく言われるけど、
「問題用紙をめくって下さい」から、「動作確認終わりました」まで、
必ずしも2分以内に終わらないよ。
特に、自分が普段はあまり使っていないような言語では。

問題文見て、面食らってる時間とか、
改行コードの出力、全パターンで共用した方がいいのかどうか思案する時間とか、
インクルード文なんだっけ、main関数の戻り値にvoid許可されてたっけとか、
Javaのクラスパスが通ってないとかw

2分以内と言ってる人は、何度も書いてるから、2分で出来るようになっただけ。

195 名前:仕様書無しさん mailto:sage [2009/09/19(土) 14:31:04 ]
んなこたーどうでもいいんだよ

196 名前:仕様書無しさん [2009/09/19(土) 14:43:36 ]
FizzBuzz

197 名前:仕様書無しさん mailto:sage [2009/09/19(土) 14:45:47 ]
195取られた

198 名前:仕様書無しさん mailto:sage [2009/09/20(日) 15:04:59 ]
>>194
ん?言語の指定はないんだが……



199 名前:仕様書無しさん mailto:sage [2009/09/20(日) 20:44:10 ]
>>194
FizzBuzzの2分は誤訳だってよ。

200 名前:仕様書無しさん mailto:sage [2009/09/20(日) 22:37:29 ]
#pythonのリストコンプリヘンションで遊んでみた

def nvl(x,y):
  if x: return x;
  return y;

fizz = (['','','fizz']*100)[0:100];
buzz = (['','','','','buzz']*100)[0:100];
num = map(lambda x:str(x),range(1,101));

print map(nvl,map(lambda x,y:x+y,fizz,buzz),num);

201 名前:仕様書無しさん mailto:sage [2009/09/20(日) 23:13:31 ]
ちょっとだけ、悪ノリ。(C言語)

#include <stdio.h>
#include <memory.h>
int main(void)
{
int i;
char buf[8];
printf("<html><head><title>クソスレ</title></head><body><dl>");
for (i=1;i<=1001;i++)
{
  char* s1, *s2, *s3, *s4;
  sprintf(buf,"%d",i);
  s2 = "blue";
  s3 = " ";
  s4 = "投稿日: 2009/09/20(日) 23:59:59 ID:FizzBuzz";
  if (i%1001==0) { s1 = "このスレッドは1000を超え(ry"; s2="green"; s4="投稿日: Over 1000 Thread"; }
  else if (i%15==0) { s1 = "fizzbuzz"; s3="[fizzbuzz]"; }
  else if (i%3==0) { s1 = "fizz"; s3="[fizz]"; }
  else if (i%5==0) { s1 = "buzz"; s3="[buzz]"; }
  else { s1 = buf; s2 = "green"; s3 = " "; }
  printf("<dt>%d 名前:<font color=\"%s\"><b>仕様書無しさん</b>%s</font> %s</dt> ",i,s2,s3,s4);
  printf("<dd style=\"padding:1em 0em\";>%s</dd>",s1);
}
printf("</dl></body></html>");
return 0;
}

202 名前:仕様書無しさん mailto:sage [2009/09/21(月) 11:41:01 ]
>>192
プログラマの素養が関係ないような問題で素養を見ようとする意図って何なんだろうな。
結局、元のブログ主の?話題づくりに利用されているだけな気が知る

203 名前:仕様書無しさん mailto:sage [2009/09/21(月) 12:19:30 ]
元ネタ知らずにレスしてる香具師いたのか。


204 名前:ぅゅ ◆e6.oHu1j.o [2009/09/22(火) 12:13:28 ]
この問題って日本のものじゃないよね
海外っていうとレベル高そうにおもえるけど実はそうでもないんじゃ

205 名前:仕様書無しさん mailto:sage [2009/09/22(火) 12:19:23 ]
PowerShellバージョンが最強だな

206 名前:仕様書無しさん mailto:sage [2009/09/22(火) 19:19:48 ]
>>202
この問題すら解けない奴がいるって事なんじゃまいか?

207 名前:仕様書無しさん mailto:sage [2009/09/23(水) 00:08:33 ]
>>202
たとえ時間を充分にかけても正答にたどり着けないような人が
現実にはたくさん面接に来るんだよ
素養があるかどうかを見るんではなくて
素養がまるでない人をふるい落とすための簡易的な試験という位置づけ

208 名前:仕様書無しさん [2009/09/23(水) 00:23:36 ]
Fortran90

program hoge
implicit none
integer :: i
do i=1,200
if (mod(i,15).eq.0) then
print *,'Fizz Buzz'
else if (mod(i,5).eq.0) then
print *,'Buzz'
else if (mod(i,3).eq.0) then
print *,'Fizz'
else
print *,i
end if
end do
end program hoge



209 名前:仕様書無しさん mailto:sage [2009/09/24(木) 12:59:58 ]
>>203
>>1 のリンク先すら読まない莫迦が
そんだけ沢山いるってことでしょうな。

210 名前:仕様書無しさん mailto:sage [2009/09/24(木) 16:41:34 ]
スレタイ嫁、1嫁だけなら分かるけど、
1のリンク先まで必須となると、何か違うような気がする。

あと、何ていうか、「リンク先まで嫁」と、「2分以内」って、同じ部類のように思える。
自分の脳内ででっち上げた完璧さを、周囲の人に対して、期待している点において。
嫌味な言い方をすれば、配慮や謙虚さが足りないって言うか。






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

前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