プログラマーなら「FizzBuzz問題」解けるよな?
- 1 :(´・ω・`) ◆Hc1VAagKMg :2008/04/29(火) 20:06:06
- 1から100までの数をプリントするプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm
言語自由
- 2 :仕様書無しさん:2008/04/29(火) 20:06:54
- 未経験プログラマー募集って??【3行目】
http://pc11.2ch.net/test/read.cgi/prog/1207924695/
↑
でいくつか回答あり
- 3 :仕様書無しさん:2008/04/29(火) 20:51:55
- || !| │
|| !| │ ,.-─‐-.、
=||=!| │ /:::::::::::::::::::::ヽ
|| !| │ |:::: ::::::::::::::::::::::l …もうダメだこのスレ
|| !| │ |::: ::::::::::::::::::::::::!
=||=!| │ |:::::::::::::::::::::::::::::l
─.─.┤ | !:::::::::::::::::::::::::li:|ニニニニニ.、
| .! !:::::::::::::::::::::::::l|::| ̄ ̄.!| |.!
| .! 、r, /|::::::::::::::::::::::::ll.,7:! .!| |.!
||`ー|. ̄ 丁 ̄|\ ´ミ《 |:| !:::::::::::::::::::::::l|.l|:.:.!_」.! !.!
__||二二二]|__ || | .!| !::!|:::::::::::::::::::::├.|:.:.::l─´. !.!
|| ̄ ̄ ̄ ̄ ̄.!l `ヽ !、 |l/:.:.:|:l|::::::::|!:::::::ll|::l|:.:.:.:|=コ|.|
|| l三三l || ,_」____!l_:.:.:|:|.!:::::::|l!::::::|l:.:||:.:.:.::l'丑丑|ニl___,'ニヽ___
||.==========!l '‐┬┬‐─ヽ|ll_|__:_!|::!:.::l‐!:.:.:.::l.─────┬┌′
|| l三三l || | /丁´/:.:.:.:.:.:.:.:.:.:.:.:.`ヽ!:.:.:.:.:! ̄ ̄ ̄ ̄丁ヽ、|
||==========:!| | !.| | / ::/ .:.:.:.:.:.:.:.:.:.:.:.:.:.:ヽ:.::_│ ! | |
|| l三三l !l .| !.! ||、:::.!:.:.:.: :.:.:.:.:.: :.:.:.:.:.:、:`<ヽ, .! ! !
||----------|.! ___,| !.|_メ´丶、:: ::::::::::::, -‐─、:ヽ:::::`\ ヽ .| l _
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ー'" 、┴-、:_:_;:-l_____, -ー‐‐‐‐' ´ `ー'
- 4 :仕様書無しさん:2008/04/29(火) 21:08:02
- @echo off
setlocal
rem ケータイからカキコ
rem 動くか知らん
:START
set count=1
if count%15==0 (
echo FizzBuzz
set printflag=true
)
if count%5==0 (
echo Buzz
set printflag=true
)
if count%3==0 (
echo Fizz
set printflag=true
)
if not "%printflag%"=="" echo %count%
set /a count+=1
if %count% gtr 100 (
goto :END
) else (
goto :START
)
:END
pause
exit
- 5 :仕様書無しさん:2008/04/29(火) 21:10:46
- void main(void)
{
puts("1");
puts("2");
puts("Fizz");
puts("4");
puts("Buzz");
puts("Fizz");
puts("7");
puts("8");
puts("Fizz");
puts("Buzz");
puts("11");
puts("Buzz");
puts("13");
puts("14");
puts("FizzBuzz");
puts("16");
・・・・
}
- 6 :んじゃVBA:2008/04/29(火) 21:12:18
- Dim s, i
For i = 1 To 100: s = s & IIf(i Mod 15 = 0, "FizzBuzz", IIf(i Mod 3 = 0, "Fizz", IIf(i Mod 5 = 0, "Buzz", i))) & vbCrLf: Next
MsgBox s
- 7 :仕様書無しさん:2008/04/29(火) 21:35:32
- 7
- 8 :4:2008/04/29(火) 22:15:06
- カウント変数の初期化位置ミスってるなww
無限ループだわ(´・ω・`)
動くか知らんが
- 9 :仕様書無しさん:2008/04/29(火) 22:17:08
- 誰か機械語で書いてくれ
- 10 :仕様書無しさん:2008/04/29(火) 22:38:05
- FizzBuzzなんて古い。
今は世界のナベアツ
- 11 :仕様書無しさん:2008/04/29(火) 22:54:37
- >>9
無茶いうな
- 12 :仕様書無しさん:2008/04/29(火) 23:33:55
- じゃああせんぶら。ごーつーぶんww
- 13 :仕様書無しさん:2008/04/29(火) 23:58:15
- 13
- 14 :仕様書無しさん:2008/04/30(水) 00:06:28
- >>4は見なかったことにしてくれ・・・orz
- 15 :仕様書無しさん:2008/04/30(水) 00:45:02
- マに立てるな
ム板だろ
- 16 :仕様書無しさん:2008/04/30(水) 00:50:15
- 16
- 17 :仕様書無しさん:2008/04/30(水) 00:50:55
- 17
- 18 :仕様書無しさん:2008/04/30(水) 02:49:06
- String s;
for(i=1;i<=100;i++){
s="";
if(i%3==0) s="Fizz";
if(i%5==0) s+="Buzz";
if(s==""){
print(i.toString());
}else{
print(s);
}
}
- 19 :仕様書無しさん:2008/04/30(水) 08:48:29
- 19
- 20 :仕様書無しさん:2008/04/30(水) 10:38:22
- Buzz
- 21 :仕様書無しさん:2008/04/30(水) 10:55:51
- Fizz
- 22 :Japan NEET University:2008/04/30(水) 11:43:44
- FizzBuzzでは満足できないあなたに
http://www.topcoder.com/tc
大量の問題が難易度別にあるので、
初心者から上級者まで満足できます
随時参加者募集中
- 23 :仕様書無しさん:2008/05/01(木) 01:56:38
- const char *pfizz = "fizz";
const char *pbuzz = "buzz";
const char *psuhzi = "%d"; //const char *pkaigyo = "\n";
__asm {
mov cx, 1
loop1:
push ecx
mov ax, cx
mov dl, 3h
div dl
mov bl, ah //n%3余り
mov ax, cx
mov dl, 5h
div dl
mov bh, ah //n%5余り
cmp bl,0
je fizz
cmp bh,0
jne suhzi
fizz:
cmp bl,0
jne buzz
- 24 :仕様書無しさん:2008/05/01(木) 01:57:38
- push pfizz //fizz print
call printf
add esp,4
buzz:
cmp bh,0
jne next
push pbuzz //buzz print
call printf
add esp,4
next:
jmp end
suhzi:
pop ecx
push ecx
push ecx
push psuhzi //shizi print
call printf
add esp,8
end:
pop ecx
inc cx
cmp cx,64h +1
jnz loop1
}
- 25 :仕様書無しさん:2008/05/01(木) 03:52:23
- 無駄に長い
- 26 :(´・ω・`) ◆UmpQiG/LSs :2008/05/01(木) 20:47:31
- /*
FizzBuzz
*/
#include <stdio.h>
int main()
{
int a = 100;
int i = 0;
for(i=1;i<=a;i++){
if( (i % 3 ) == 0 ) {
printf("Fizz");
}
if( (i % 5 ) == 0 ) {
printf("Buzz");
}
if( (i % 3) != 0 && (i % 5) != 0 ) {
printf("%d ",i);
}
printf("\n");
}
return 0;
}
- 27 :仕様書無しさん:2008/05/01(木) 21:33:31
- static void Main(string[] args)
{
for (int i = 1; i < 101; ++i)
{
if (i % 3 == 0)
{
Console.Out.Write("Fizz");
if (i % 5 == 0)
{
Console.Out.Write("Bazz");
}
Console.Out.WriteLine("");
}
else if (i % 5 == 0)
{
Console.Out.WriteLine("Bazz");
}
else
{
Console.Out.WriteLine(i.ToString());
}
}
}
- 28 :仕様書無しさん:2008/05/01(木) 22:03:08
- void func(void)
{
char str[9];
for(int i = 0; i < 100; i++) {
memset(str, 0, sizeof(str));
if (!(i % 3)) {
strcpy(str, "Fizz");
}
if (!(i % 5)) {
strcat(str, "Buzz");
}
if (str[0]) {
printf("%s\n", str);
}
else {
printf("%d\n",i);
}
}
}
これで手を打てw
- 29 :仕様書無しさん:2008/05/01(木) 22:45:13
- 鬼才現る!って言いたくなる様なコードを書いてくれよ
- 30 :仕様書無しさん:2008/05/01(木) 22:56:10
- >>29
print("鬼才現る")
- 31 :仕様書無しさん:2008/05/01(木) 23:40:16
- String fizz = "Fizz";
String buzz = "Buzz";
StringBuffer ret = new StringBuffer();
for (int i = 1; i < 101; i++) {
if ((i % 3) == 0) {
ret.append(fizz);
}
if ((i % 5) == 0) {
ret.append(buzz);
}
if (ret.length() == 0) {
System.out.println(i);
} else {
System.out.println(ret.toString());
ret = new StringBuffer();
}
}
- 32 :仕様書無しさん:2008/05/02(金) 07:00:50
- /* 普通のコードしか思いつかねぇ */
#include <stdio.h>
int main(void) {
int i;
for (i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 5 ==0)
printf("FizzBuzz\n");
else if (i % 3 == 0)
printf("Fizz\n");
else if (i % 5 == 0)
printf("Buzz\n");
else
printf("%d\n", i);
}
return (0);
}
- 33 :仕様書無しさん:2008/05/02(金) 12:03:33
- /* じゃあ、あまり普通じゃないコードを */
#include <stdio.h>
const char *s[] = {
"FizzBuzz\n", "%d\n", "%d\n", "Fizz\n", "%d\n", "Buzz\n", "Fizz\n",
"%d\n", "%d\n", "Fizz\n", "Buzz\n", "%d\n", "Fizz\n", "%d\n", "%d\n"
};
int main() {
int i;
for (i = 1; i <= 100; i++) {
printf(s[i % 15], i);
}
}
- 34 :仕様書無しさん:2008/05/02(金) 12:14:28
- REM FizzBuzz.bat
@ECHO OFF
SETLOCAL
SET Rest=0
SET Start=1
SET End=100
SET Count=%Start%
:BEGIN
SET FizzBuzz=
CALL :CALC %Count% 3 Fizz
CALL :CALC %Count% 5 Buzz
CALL :CALC %Count% 15 FizzBuzz
IF "%FizzBuzz%"=="" (
ECHO %Count%
) ELSE (
ECHO %FizzBuzz%
)
SET /A Count+=1
IF %Count% GTR %End% (
GOTO :FINISH
) ELSE (
GOTO :BEGIN
)
:FINISH
PAUSE
EXIT
:CALC
SET /A "Rest=%1 %% %2"
IF %Rest%==0 SET FizzBuzz=%3
GOTO :EOF
- 35 :仕様書無しさん:2008/05/02(金) 13:12:35
- Buzz
- 36 :仕様書無しさん:2008/05/02(金) 13:30:21
- Fizz
- 37 :仕様書無しさん:2008/05/02(金) 13:31:58
- このスレでは、3の倍数のレスでは「Fizz」、5の倍数のレスでは「Buzz」と書き込み、
それ以外ではレス番号を書き込んでください。
- 38 :仕様書無しさん:2008/05/02(金) 13:46:51
- 3の倍数か3を含む数字の時だけアホになってください。
- 39 :仕様書無しさん:2008/05/02(金) 13:55:46
- Fizz
- 40 :仕様書無しさん:2008/05/02(金) 14:07:56
- Buzz
- 41 :仕様書無しさん:2008/05/02(金) 14:10:59
- 41
- 42 :仕様書無しさん:2008/05/02(金) 19:57:48
- // Fizz
public class FizzBuzz {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
System.out.println(
i % 15 == 0 ? "FizzBuzz" :
i % 5 == 0 ? "Buzz" :
i % 3 == 0 ? "Fizz" : i);
}
}
}
- 43 :仕様書無しさん:2008/05/02(金) 20:15:21
- #include<stdio.h>
int main(int,char**)
{
int i = 0;
while( ++i <= 100 )
printf((i%15) ? "FizzBuzz\n" : ((i%3) ? "Fizz\n" : ((i%5) ? "Buzz\n" : "%d\n") ) , i );
return 0;
}
- 44 :43:2008/05/02(金) 20:17:38
- 逆だw
#include<stdio.h>
int main(int,char**)
{
int i = 0;
while( ++i <= 100 )
printf( (i%15) ? ( (i%3) ? ( (i%5) ? "%d\n" : "Fizz\n") : "Buzz\n" ) : "FizzBuzz\n" , i );
return 0;
}
- 45 :仕様書無しさん:2008/05/02(金) 20:43:47
- #include <stdio.h>
int main()
{
printf("#include <stdio.h>\n\n");
printf("int main()\n");
printf("{\n");
int i;
for (i = 1; i <= 100; i++) {
if (i % 15 == 0)
puts("\tputs(\"FizzBuzz\");");
else if (i % 3 == 0)
puts("\tputs(\"Fizz\");");
else if (i % 5 == 0)
puts("\tputs(\"Buzz\");");
else
printf("\tputs(\"%d\");\n", i);
}
printf("\treturn 0;\n");
printf("}\n");
return 0;
}
- 46 :仕様書無しさん:2008/05/03(土) 01:52:10
- >>45
だったらそのままコンパイルから実行までやっちゃおうぜ
- 47 :仕様書無しさん:2008/05/03(土) 09:18:27
- // Win限定
#include "stdio.h"
#include "process.h"
// c for vbs
void main () {
FILE *f = fopen( "a.vbs", "w+" );
fputs( "Dim s\r\n", f );
for( int i = 1; i <= 100; i ++ ) {
fprintf( f, "s = s & \"" );
if( i % 3 == 0 ) fprintf( f, "Fizz" );
if( i % 5 == 0 ) fprintf( f, "Buzz" );
if( i % 3 != 0 && i % 5 != 0 ) fprintf( f, "%d", i );
fprintf( f, "\" & vbcrlf\n" );
}
fprintf( f, "MsgBox(s)\r\n" );
fclose( f );
system( "a.vbs" );
}
- 48 :仕様書無しさん:2008/05/04(日) 05:13:53
- // ファイルに出力
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.FileNotFoundException;
import java.io.IOException;
public class FizzBuzzCreator {
private static final String LS = System.getProperty("line.separator");
public static void main (String[] args) throws IOException, FileNotFoundException {
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter("FizzBuzz.java"));
bw.write("import java.io.FileWriter;" + LS);
bw.write("import java.io.FileNotFoundException;" + LS);
bw.write("import java.io.IOException;" + LS);
bw.write("import java.io.BufferedWriter;" + LS);
bw.write("public class FizzBuzz {" + LS);
bw.write("private static final String LS = System.getProperty(\"line.separator\");" + LS);
bw.write("public static void main (String[] args) throws FileNotFoundException, IOException {" + LS);
bw.write("BufferedWriter bw = new BufferedWriter(new FileWriter(\"result.txt\"));" + LS);
bw.write("int i = 0;" + LS);
bw.write("while (i++ < 100)" + LS);
bw.write("bw.write(" + LS);
bw.write("i % 15 == 0 ? \"FizzBuzz\" + LS : " + LS);
bw.write("i % 5 == 0 ? \"Buzz\" + LS : " + LS);
- 49 :仕様書無しさん:2008/05/04(日) 05:14:21
- // 続き
bw.write("i % 3 == 0 ? \"Fizz\" + LS : String.valueOf(i) + LS" + LS);
bw.write(");" + LS);
bw.write("bw.flush();" + LS);
bw.write("bw.close();" + LS);
bw.write("}}" + LS);
} catch (IOException e) {
e.printStackTrace();
throw e;
} finally {
bw.flush();
bw.close();
}
Runtime rt = Runtime.getRuntime();
try {
if (rt.exec("javac FizzBuzz.java").waitFor() != 0) {
throw new RuntimeException("javac faild");
}
if (rt.exec("java FizzBuzz").waitFor() != 0) {
throw new RuntimeException("java faild");
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
- 50 :仕様書無しさん:2008/05/04(日) 23:40:18
- Buzz
- 51 :仕様書無しさん:2008/05/05(月) 17:37:45
- Fizz
- 52 :仕様書無しさん:2008/05/05(月) 20:42:11
- fiz
- 53 :仕様書無しさん:2008/05/05(月) 22:37:47
- ひさしぶりのPG
よい子が約1時間かかった...
public class FizzBuzz{
void fizzMsd(int max,int fizz,int buzz){
theLoop: for(int counter = 1; counter <= max; counter++){
if( ( (counter % fizz) == 0 ) & ( (counter % buzz) == 0 ) ){
System.out.println("FizzBuzz");
continue theLoop;
}
if( ( (counter % fizz) == 0 ) || ( (counter % buzz) == 0 ) ){
if( (counter % fizz) == 0 ){
System.out.println("Fizz");
} else if( (counter % buzz) == 0 ){
System.out.println("Buzz");
}
} else {
System.out.println(counter);
}
}
}
public static void main(String args[]){
FizzBuzz myFB = new FizzBuzz();
myFB.fizzMsd(100,3,5);
}
}
- 54 :仕様書無しさん:2008/05/05(月) 23:41:08
- X86アセンブラ、C、C++、Java、VB辺りが出たので他のないすかー?
ぴゅう太とかリアルで動かしてくれたら泣ける。
- 55 :仕様書無しさん:2008/05/05(月) 23:42:56
- >>54
ググレカス
- 56 :仕様書無しさん:2008/05/05(月) 23:47:01
- >>55
つってもCやVB系は書いたし他のメジャーなんも出たからさぁ。
変な奴こねえかなぁ。そういやDelphiねーな。
- 57 :仕様書無しさん:2008/05/06(火) 00:12:55
- <?php
for ($i=0 ; $i<100 ; $i++ ){
$a=$i;
if (!$i%3)$a.="fizz";
if (!$i%5)$a.="buzz";
echo $a;
}
?>
- 58 :仕様書無しさん:2008/05/06(火) 00:46:19
- >>57
for( $i = 1; $i <= 100; ... ) だな。
- 59 :仕様書無しさん:2008/05/06(火) 04:48:24
- かめさん=タートル!作る。
かめさん!ペンなし。
かめさん!100 0 位置。
かめさん!180度 向き。
かめさん!ペンあり。
時計=タイマー!作る。
時計!0.1秒 間隔。
時計!100回 回数。
文字を表示する部分=フィールド!作る −40 20 位置 80 40 大きさ。
時計!「|n|
表示する文字=””。
「n%3==0」!なら「表示する文字=”フィズ”」実行。
「n%5==0」!なら「表示する文字=表示する文字!”バズ”足す」実行。
「表示する文字==””」!なら「表示する文字=n」実行。
文字を表示する部分!(表示する文字)書く。
かめさん!(色!0 (n*2.5) (n*2.5) 作る)線の色。
かめさん!(100*cos(n*10)) (−100*sin(n*10)) 位置。
かめさん!(180−(n*10)) 向き。
」実行。
- 60 :仕様書無しさん:2008/05/06(火) 06:44:30
- 10 FOR L=1 TO 100
20 D=0
30 IF L MOD 3=0 THEN PRINT "FIZZ"; : D=1
40 IF L MOD 5=0 THEN PRINT "BUZZ"; : D=1
50 IF D=1 THEN PRINT "" : GOTO 70
60 PRINT L
70 NEXT L
- 61 :仕様書無しさん:2008/05/06(火) 06:54:09
- 10 C3=0: C5=0
20 FOR L=1 TO 100
30 C3=C3+1+3*(C3=2) : C5=C5+1+5*(C5=4)
40 IF C3=0 THEN PRINT "FIZZ";
50 IF C5=0 THEN PRINT "BUZZ";
60 IF C3*C5=0 THEN PRINT "" ELSE PRINT L
70 NEXT L
- 62 :仕様書無しさん:2008/05/06(火) 08:40:48
- >>57
常に数値が出るぞ。要件を良く見よう。
- 63 :仕様書無しさん:2008/05/06(火) 09:30:12
- でませんでした∧||∧
- 64 :仕様書無しさん:2008/05/06(火) 09:32:46
- やっぱでるな
- 65 :仕様書無しさん:2008/05/06(火) 09:36:11
- こうですかわかりません><
<?php
for ($i=1 ; $i<101 ; $i++ ){
$a="";
if (!$i%3)$a.="fizz";
if (!$i%5)$a.="buzz";
if ($a="")$a=$i;
echo $a;
}
?>
- 66 :仕様書無しさん:2008/05/06(火) 09:39:04
- $a=""
orz
- 67 :仕様書無しさん:2008/05/06(火) 10:44:45
- >>64
う、うん。それでいいよ。
俺が悪かったよ。
- 68 :仕様書無しさん:2008/05/06(火) 11:03:37
- LISP担当なにやってるの
- 69 :仕様書無しさん:2008/05/06(火) 11:23:23
- #!/usr/bin/perl
for ($i = 1; $i <= 100; $i++) {
print (!($i % 15) ? "FizzBuzz\n" :
!($i % 5) ? "Buzz\n" :
!($i % 3) ? "Fizz\n" : "$i\n");
}
print "PHPがバカにされる理由がわかった。\n";
- 70 :仕様書無しさん:2008/05/06(火) 12:05:52
- 3が付く時だけFizzと言ってください
- 71 :仕様書無しさん:2008/05/06(火) 12:38:34
- 「FizzBuzz問題」でググッたけど、どのブログも「この問題をどう解くか?」
という話になっていて、元の話の「プログラムを書けない奴をどうするか?」
と言う話はほとんど出てないのな。
日本じゃどの現場でも、プログラムが全く書けない奴を抱えて困った経験など、
してないんだろうか?
- 72 :仕様書無しさん:2008/05/06(火) 13:14:23
- >>71
うんそうだよw極例だが
部長は設計できない、実装できない、捏造完璧
課長は設計嘘っぽい、実装嘘っぽい、報告うまい
主任は実装できそう、設計できない、ごますりうまい
正社員は実装できそう、ごますりうまそう
派遣は実装できる、設計もできる
プログラムの書ける人が困るのが日本式だぜw
- 73 :仕様書無しさん:2008/05/06(火) 13:29:31
- >>71
書けない奴はこんな問題、
ある意味歯牙にもかけないだろ
- 74 :仕様書無しさん:2008/05/06(火) 14:14:23
- Lisp、つーかGauche
(use srfi-1)
(print (map
(lambda (x)
(cond
((= (remainder x 15) 0) "FizzBuzz")
((= (remainder x 3) 0) "Fizz")
((= (remainder x 5) 0) "Buzz")
(else x))) (iota 100 1)))
- 75 :仕様書無しさん:2008/05/06(火) 17:43:07
- haskell勉強してみたw
module Main where
main = do
putStrLn $ fizz_buzz [1..100]
fizz_buzz [] = []
fizz_buzz (x:xs) = fizz_buzz_chk x ++ "\n" ++ fizz_buzz xs
fizz_buzz_chk x | x `mod` 15 == 0 = "FizzBuzz"
| x `mod` 3 == 0 = "Fizz"
| x `mod` 5 == 0 = "Buzz"
| otherwise = show x
- 76 :仕様書無しさん:2008/05/06(火) 17:53:58
- 76
- 77 :仕様書無しさん:2008/05/06(火) 20:43:39
- >>75
掲示板に投稿するとオフサイドルールが・・・
- 78 :75:2008/05/06(火) 20:45:28
- >>77にいじめられたぉ
助けてほしいぉ
- 79 :可能な限り長く書いてみたw: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2008/05/07(水) 20:08:11
- >>90
ワロタ
三項演算子は思いついたがそんな使い方があるとは
- 93 :仕様書無しさん:2008/05/07(水) 21:28:49
- int i;は外に出してグローバルにしないと初期値が不定になるぞ。
- 94 :仕様書無しさん:2008/05/07(水) 21:33:35
- パソコン買って半年の超初心者の俺が何故かこのスレに来ました。
ここにいる人達はどう考えても天才ですよね?
- 95 :仕様書無しさん:2008/05/07(水) 23:09:24
- >94
いいえ違います
ここにいる人達は毎日
おい○○、あれやっておけ
おい○○、明日までにデスマでこれデバレ
おい○○、パン買って来いあと報告書ここ修正
おい○○、出張いってこい
おい○○、よかったな某大手Nに売られるぞw
こんな感じで虐げられた下級民族以下の扱いを
毎日受けています
- 96 :仕様書無しさん:2008/05/07(水) 23:41:04
- 超初心者がこんなスレにたどり着いた方法を知りたい
- 97 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2008/05/09(金) 17:49:03
- >>90
ttp://www.shinh.org/p.rb?FizzBuzz#C
73B まで縮むっぽいよ
- 101 :仕様書無しさん:2008/05/14(水) 01:21:02
- 久しぶりにJavaでFizzBuzz問題のプログラムを書いてみたら、131バイトで書けた。
133バイトが最小だと思ってたけど、何か言語仕様変わったのかな。
試しにanarchy golfに登録してみたら、ちゃんと登録できたし
http://golf.shinh.org/p.rb?FizzBuzz
- 102 :仕様書無しさん:2008/05/14(水) 23:06:37
- main(i){
for(;i<101;puts(i++%5?"":"Buzz"))
printf(i%3?i%5?"%d":"":"Fizz",i);
}
- 103 :仕様書無しさん: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
- ここに神がいると聞き
http://www.nicovideo.jp/watch/sm3343017">【ニコニコ動画】ムービーメーカー編集後 aviutlにはいらない・・・
- 105 :仕様書無しさん:2008/05/19(月) 00:42:20
- プログラミングのジャンルと難易度(および Web プログラミング批判)
http://d.hatena.ne.jp/scinfaxi/20080517/1210970917
- 106 :仕様書無しさん: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:2008/05/19(月) 03:15:40
- >>90じゃなくて>>100だった。。
- 108 :仕様書無しさん: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 :仕様書無しさん:2008/05/23(金) 02:00:16
- なんで未初期化のまま使ってるんだろうと思ってたが、
mainの第1引数であることに今さら気づいたorz
- 110 :仕様書無しさん:2008/05/23(金) 08:30:46
-
- 111 :仕様書無しさん:2008/05/23(金) 23:39:50
- コードサイズよりバイナリサイズを削ろうよ
とか思う俺はKY?
- 112 :仕様書無しさん:2008/05/24(土) 00:25:22
- >>111
バイナリゴルフもやる人はやるみたい
あと、ちょっと違うかもだけど、例えばあなごるなら
http://golf.shinh.org/l.rb?out
http://golf.shinh.org/l.rb?z8b
こういうのもあるよ
- 113 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2008/05/24(土) 22:49:43
- >>111
KYだなぁ。たぶんお前が思ってるよりずっと大きな意味で。
- 116 :仕様書無しさん: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 :仕様書無しさん:2008/05/25(日) 15:14:37
- ¥rを使うダーティーな奴がありなら、これでもいけたよ。
main(i){for(;i<101;puts(i++%5?"":"Buzz"))printf(i%3?"%d¥r":"Fizz",i);}
- 118 :仕様書無しさん:2008/05/26(月) 23:16:29
- >>115
K神奈川県
Y横浜市
- 119 :仕様書無しさん:2008/05/29(木) 22:41:54
- 横須賀市ですね、わかります
- 120 :仕様書無しさん:2008/05/30(金) 04:02:57
- 熊本県八代市のこともたまには思い出してあげてください。
- 121 :仕様書無しさん:2008/06/01(日) 21:31:33
- どう見ても京都府八幡市です。
本当にありがとうございました。
- 122 :仕様書無しさん:2008/06/02(月) 00:04:09
- 京都といえば
八ツ橋だろ
- 123 :仕様書無しさん:2008/06/04(水) 00:45:13
- 神戸の
洋館です
- 124 :仕様書無しさん:2008/06/06(金) 13:27:46
- 腐れ
ヨーグルト
- 125 :仕様書無しさん:2008/06/06(金) 14:57:11
- 後楽園
遊園地
- 126 :仕様書無しさん:2008/09/02(火) 00:20:45
- >>125
後楽園
遊園地で、ぼ
くとあくし
ゅ
- 127 :仕様書無しさん: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 :仕様書無しさん:2009/01/14(水) 14:17:20
- smalltalkキボソ
- 130 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :あぼーん:あぼーん
- あぼーん
- 135 :仕様書無しさん:2009/01/19(月) 23:08:51
- >>134
こんな基地外、死ねばいいのに
http://d.hatena.ne.jp/yaneurao/20080619
- 136 :仕様書無しさん: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 :仕様書無しさん:2009/01/21(水) 17:39:37
- old_area_numって何?
- 139 :仕様書無しさん:2009/01/21(水) 17:45:44
- old_shop_numってなに?
- 140 :仕様書無しさん:2009/01/23(金) 11:48:33
- >>137
一緒に音ゲー板に帰るぞ
ていうかとっくに解析されてるのにいまさらマ板に持ってくるなよ
- 141 :仕様書無しさん:2009/01/23(金) 12:26:53
- 「16進×35バイト」らしき元データが35文字になるとか
見え透いてる。
- 142 :仕様書無しさん: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 :仕様書無しさん:2009/01/25(日) 15:03:33
- if () {
print "...";}
}elseif
}が1つ余計じゃない?
- 145 :仕様書無しさん:2009/01/25(日) 15:38:05
- >>143
あからさまに括弧の対応が変。
最初からやり直せ。
- 146 :仕様書無しさん:2009/01/25(日) 17:48:27
- >>144
thx
>>145
そうします。。thx
- 147 :仕様書無しさん:2009/01/25(日) 18:42:08
- 2chに書き込むときに消えただけかもしれないけど、
ちゃんとインデントして、括弧の位置をそろえると、
無駄な作業を減らせるよ
- 148 :仕様書無しさん:2009/01/25(日) 23:02:54
- viで%押せば済むだろ。
- 149 :仕様書無しさん:2009/01/26(月) 09:51:37
- >>148
- 150 :仕様書無しさん: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 :仕様書無しさん:2009/01/27(火) 21:53:31
- 無駄なfork&exec大杉
- 152 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2009/03/12(木) 05:37:27
- むしろ、よくそんな書き方が出来たなと言いたい
フツーに書いた方が簡単な希ガスw
- 156 :うゆ ◆e6.oHu1j.o :2009/03/13(金) 20:49:29
- Ozyでぐぐれかす
- 157 :仕様書無しさん:2009/03/13(金) 23:16:03
- 失せろカス
- 158 :仕様書無しさん: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 :仕様書無しさん:2009/03/16(月) 00:30:30
- 恥ずかしいくらい単純なミスしてた…orz
- 160 :仕様書無しさん:2009/03/16(月) 07:37:32
- 三行以上のプログラムにはバグはつきものさ
- 161 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2009/04/25(土) 06:37:45
- 15個並べたのか
- 166 :164: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2009/05/16(土) 22:57:37
- >>170
それっぽくはあるけど、良いコードじゃないぞ
実装するなら、実装意図を明確にするべきで、
if (!(i%15))
この記述で無理矢理論理判断に持ち込むのは、良くない例
たしかにコレでも動くけども、
このコードでは 15で割ったあまりが ==0である、ことに意味がある
関数の戻りが0/1で戻ってくるから、それを論理判断にしているわけではない
そこをはき違えると、意図が不明確で、他人が読みづらいコードになる
- 172 :仕様書無しさん:2009/05/17(日) 23:12:18
- Cでは当たり前の記述だがな。
- 173 :仕様書無しさん:2009/05/17(日) 23:32:19
- XXでは当たり前、で思考停止してるから、糞コードが減らないんじゃね?w
- 174 :仕様書無しさん:2009/05/17(日) 23:36:21
- コードに15という定数を使っているのは今一
- 175 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2009/05/20(水) 20:59:00
- 途中で書き込んじまったorz
修正するのもメンドクサイから放置しよ。
- 178 :仕様書無しさん: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:2009/06/20(土) 18:19:20
- あー、
100個の結果をそのままprintfした方が早いか... orz
私がバカでした
- 180 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2009/07/12(日) 04:57:48
- >void main(void)
ここで既に警告が出てるぞ。
- 183 :仕様書無しさん: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:2009/08/04(火) 20:03:18
- >>183はDOS窓用バッチ
- 185 :cobol: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 :仕様書無しさん:2009/09/08(火) 00:03:08
- 無駄に長いなと思ったらCobolか...
- 187 :仕様書無しさん:2009/09/16(水) 20:54:30
- SQL見た時、なんか冗長だな〜COBOLみて〜、と思った。
- 188 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2009/09/17(木) 21:36:42
- なんでこの問題が有名なのかイマイチわからんのだが、
重複さえ気をつければ他に別にひっかけがあるようなもんでは無いよね。
- 191 :仕様書無しさん:2009/09/17(木) 22:03:23
- 引っかけがあるように見えるので、しばらく考えるが、
実は、引っかけがないことに気付く。
これが、最大の引っかけ。
- 192 :仕様書無しさん:2009/09/17(木) 23:17:09
- >>190-191
そもそもプログラマとしての素養を見るための問題の例として挙げられたものだから
引っかけとか特に必要ないんだよ
- 193 :仕様書無しさん:2009/09/18(金) 23:12:18
- 普通のプログラマなら2分以内で書けて当たり前という程度には簡単。
- 194 :仕様書無しさん:2009/09/19(土) 14:18:17
- 「2分」ってよく言われるけど、
「問題用紙をめくって下さい」から、「動作確認終わりました」まで、
必ずしも2分以内に終わらないよ。
特に、自分が普段はあまり使っていないような言語では。
問題文見て、面食らってる時間とか、
改行コードの出力、全パターンで共用した方がいいのかどうか思案する時間とか、
インクルード文なんだっけ、main関数の戻り値にvoid許可されてたっけとか、
Javaのクラスパスが通ってないとかw
2分以内と言ってる人は、何度も書いてるから、2分で出来るようになっただけ。
- 195 :仕様書無しさん:2009/09/19(土) 14:31:04
- んなこたーどうでもいいんだよ
- 196 :仕様書無しさん:2009/09/19(土) 14:43:36
- FizzBuzz
- 197 :仕様書無しさん:2009/09/19(土) 14:45:47
- 195取られた
- 198 :仕様書無しさん:2009/09/20(日) 15:04:59
- >>194
ん?言語の指定はないんだが……
- 199 :仕様書無しさん:2009/09/20(日) 20:44:10
- >>194
FizzBuzzの2分は誤訳だってよ。
- 200 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2009/09/21(月) 11:41:01
- >>192
プログラマの素養が関係ないような問題で素養を見ようとする意図って何なんだろうな。
結局、元のブログ主の?話題づくりに利用されているだけな気が知る
- 203 :仕様書無しさん:2009/09/21(月) 12:19:30
- 元ネタ知らずにレスしてる香具師いたのか。
- 204 :ぅゅ ◆e6.oHu1j.o :2009/09/22(火) 12:13:28
- この問題って日本のものじゃないよね
海外っていうとレベル高そうにおもえるけど実はそうでもないんじゃ
- 205 :仕様書無しさん:2009/09/22(火) 12:19:23
- PowerShellバージョンが最強だな
- 206 :仕様書無しさん:2009/09/22(火) 19:19:48
- >>202
この問題すら解けない奴がいるって事なんじゃまいか?
- 207 :仕様書無しさん: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 :仕様書無しさん:2009/09/24(木) 12:59:58
- >>203
>>1 のリンク先すら読まない莫迦が
そんだけ沢山いるってことでしょうな。
- 210 :仕様書無しさん:2009/09/24(木) 16:41:34
- スレタイ嫁、1嫁だけなら分かるけど、
1のリンク先まで必須となると、何か違うような気がする。
あと、何ていうか、「リンク先まで嫁」と、「2分以内」って、同じ部類のように思える。
自分の脳内ででっち上げた完璧さを、周囲の人に対して、期待している点において。
嫌味な言い方をすれば、配慮や謙虚さが足りないって言うか。
- 211 :仕様書無しさん:2009/09/25(金) 03:28:04
- それをたらたら書いてる時間でリンク先読むのは十分可能だよな?
元ネタは採用試験の話だ、くらいはFizzBuzzより簡単にわかるよな。
配慮や謙虚さが足りないって、むしろそっちじゃないのか。
嫌味な言い方だがな。
- 212 :仕様書無しさん:2009/09/25(金) 15:11:26
- 情報の提示の仕方が悪い、
ボクちゃんは悪くない、おまえが悪い、おまえの教え方が悪い
というのは、典型的なゆとり脳の主張ですw
- 213 :仕様書無しさん:2009/10/19(月) 21:26:19
- 出来るだけ短く
ここで一応動いたよ。→http://codepad.org/
#include <stdio.h>
#define p printf
main(){int i;for(i=1;i<=100;i++)if(!p("%s",p("%s%s",i%3?0:"Fizz",i%5?0:"Buzz")?"\n":0))p("%d\n",i);}
- 214 :仕様書無しさん:2009/10/19(月) 22:09:10
- これはコードゴルフじゃないんだぜ。
実行環境はなし。もしコンパイルが通らない、結果が間違っていたらその場で銃殺。
というシビアな条件で最も間違いにくいコードに最高得点をあげたい。
- 215 :仕様書無しさん:2009/10/19(月) 22:28:45
- その条件だと、HQ9F+で書くのが、最強か?
ttp://cfs.maxn.jp/neta/HQ9F+.html
※元になったのはHQ9+という、ネタ言語。
Hと入力すれば、Hello worldを出力してくれる。
ttp://ja.wikipedia.org/wiki/HQ9%2B
- 216 :コード書き忘れた:2009/10/19(月) 22:30:41
- ++++++++++f
私の個人的な意見になるけど、
Fの一文字で、FizzBuzzを出力できるようにした方が、HQ9+っぽいと思うんだけどね。
- 217 :仕様書無しさん:2009/10/19(月) 22:45:37
- Cで書いたら緊張のあまりセミコロン忘れてあぼーんだなw
- 218 :Go:2009/11/17(火) 17:06:00
- package main
import "fmt"
func main() {
for i:=1;i<101;i++ {
s:="";
if i%3==0 { s+="Fizz" }
if i%5==0 { s+="Buzz" }
if s=="" { s=fmt.Sprintf("%d",i) }
fmt.Printf(s+"¥n")
}
}
- 219 :仕様書無しさん:2009/11/17(火) 19:50:32
- 何度見ても気持ち悪い文法だなあ
- 220 :仕様書無しさん:2009/11/18(水) 05:13:33
- for i in range(100):
if (i % 3) == 0 and (i % 5) == 0:
print u'FizzBuzz'
elif (i % 3) == 0:
print u'Fizz'
elif (i % 5) == 0:
print u'Buzz'
else:
print i
67 KB
[ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]
取りに行ったけどなかった。次は一時間後に取りに行くです。新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.0.7.8 2008/11/13 アクチョン仮面 ★
FOX ★ DSO(Dynamic Shared Object)