5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

プログラマーなら「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


221 :うゆ ◆e6.oHu1j.o :2009/12/03(木) 05:10:19

100.times do |n|
 str = String.new
 str = n%15==0?:fizzbuzz:n%5==0?:fizz:n%3==0?:buzz:""
 print "%03d:%s\n" % [n,str]
end

222 :仕様書無しさん:2010/04/21(水) 22:59:37
剰余(割り算の余り)を出すのに演算子の % 以外で計算できますか?
% を忘れると大変だぞ!


223 :仕様書無しさん:2010/04/21(水) 23:31:11
剰余 % を忘れたときに使える方法だと思う。
この問題で肝心なところは % と 「かつ」の && だな。あー恥ずかしい

class TestFizBuz {
public void mes() {
int int3 = 0;
int int5 = 0;
for (int i = 1; i <= 100; i++) {

if (int3 < i/3 && int5 < i/5) {
System.out.println("FizzBuzz: " + i);
int3 = i/3;
int5 = i/5;
} else if (int3 < i/3) {
System.out.println("Fizz: " + i);
int3 = i/3;
} else if (int5 < i/5) {
System.out.println("Buzz: " + i);
int5 = i/5;
} else {
System.out.println(i);
}

}
}
public static void main(String[] args) {
TestFizBuz tfb = new TestFizBuz();
tfb.mes();
}
}

224 :仕様書無しさん:2010/04/22(木) 00:07:26
向こうの子供はハッキングしまくりだってのにお前らときたら…

【調査】13歳までにハッキングをした経験した34%――米英の若者の実態調査(10/04/15)
http://pc11.2ch.net/test/read.cgi/pcnews/1271336569/

225 :仕様書無しさん: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 :仕様書無しさん:2010/04/23(金) 01:42:01
>>224
それってさ、漏れパスを使ったとか
正しい言い方忘れたが、「スクリプト使用のガキ」も含んででない?

228 :仕様書無しさん:2010/04/23(金) 01:44:07
Script kiddie ?

229 :仕様書無しさん:2010/04/23(金) 02:07:26
>>226
%を使う使わない以前に結果を他のコードと比べるくらいなぜできない?
数学のテストで「計算結果は違うけど式はあってますよね」とか言うクチか。


230 :仕様書無しさん:2010/04/23(金) 02:59:12
%を忘れたwという変な条件を入れたとしても、
int reminder(int divisor, int dividend)
みたいな相当するメソッドを作るだろふつー。
直近の3と5の倍数を保持して商と比べるなんてせんでも。
void型のメソッドしか認めんwのなら別だけどさ。

231 :仕様書無しさん:2010/04/23(金) 14:41:46
>>229
結果は当たっているよ。書き方の問題ね。


232 :仕様書無しさん:2010/04/23(金) 14:57:18
>>1
>1から100までの数をプリントするプログラムを書け。
>ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

とあるのに3や5をプリントアウトしたらただの間違いだろ。
問題をちゃんと読んでねぇアホじゃねーか。

233 :231:2010/04/23(金) 15:26:12
>>232
あー そこか


234 :仕様書無しさん:2010/04/24(土) 03:25:23
223に感動した。
コード読んでも、何やってるのかワカランかったが、
int3, i/3, int5, i/5 の値を出力してみたら、発想の奇抜さにたまげた。

235 :234: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 :仕様書無しさん:2010/04/24(土) 03:35:25
訂正 ×233 ○223

あと、if ((i-1)/15!=i/15) でOKだ。

237 :仕様書無しさん:2010/04/24(土) 03:59:03
iが正の整数なら剰余%は除数xについてi-(int(i/x)*x)なんだから当たり前じゃん。
%を忘れてどうこうってのがどうかしてる。馬鹿?

238 :仕様書無しさん: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 :仕様書無しさん:2010/04/24(土) 10:14:09
修正: "%i " → "%u "

240 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2010/04/24(土) 22:55:00
>243
>15回に1回ごとに3と5の倍数が来ることを想定して配列に代入しているという
>理解でいいのかな。

全然違う。
関数compactが15で割った余りを(%演算子無しで)計算しているのがポイント。
下から4bitづつに区切って(まぁ上からでも同じだけど)、それを全部足したものと元の値では
15で割った余りが同じになることを利用している。
なぜそうなるかはちょっと頭をしぼって考えてみな

245 :仕様書無しさん:2010/04/24(土) 23:07:38
10進数でmod 9が各桁の値の和に等しいってのと同じ話か。
16進数で考えてみようと思ったことが無かったぜ。

246 :仕様書無しさん:2010/04/24(土) 23:53:32
明らかに%演算子より知名度低そうな知識だな…

247 :243:2010/04/25(日) 09:43:48
>>244
違っていたか。しぼって考えてみます。

248 :(u_・y) ◆e6.oHu1j.o :2010/04/26(月) 04:48:47
>>225
おれが過去にかいたコードを描いたときにかんがえてた事を
予想すると、お前のその意味不明なレスもなんとなくわかるよ

おれが適当に描いた部分は、 たとえ、プログラミング知らない奴でも修正できそうなレベルだ
っていうところまではわかるか??
だれにでも解ける場所とか、自分が過去に解いた場所は適当になる
それがuy。

その適当具合は、常軌を逸しているかもしれない
問題すら適当に読むか読まないし、コンパイルチェックもしないで2chに貼り付けたりもする
たとえそれが間違っていてもどうでもいいやという気分になる



まとめると:

おれは忙しいから
無駄なことに時間は使いたくない

249 :仕様書無しさん:2010/04/26(月) 05:26:25
>>246
mod 9 = 0 の場合に限れば、「全桁の数字を足すと9の倍数になる数は9の倍数」
っていう中学生でも知ってる話だぜ。

250 :仕様書無しさん:2010/04/26(月) 08:13:08
言い訳にもなってねえ
流石屑ニート様

251 :革命家[uy] ◆rT33C51l9k :2010/05/01(土) 21:52:31
え・・・、って思った
よほどのヴぁかか、全然初心者レベルだろお前

252 :仕様書無しさん:2010/05/02(日) 00:20:36
頭大丈夫?

253 :革命家[uy] ◆e6.oHu1j.o :2010/05/04(火) 10:42:56
さっさと追いつけよのろま

254 :仕様書無しさん:2010/05/04(火) 13:54:14
職歴なしニートにおいつくのはもう無理なんで。。

255 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2010/05/27(木) 13:32:51
>>258
その労力は、検索アルゴリズムの選択とか、枝刈りとか、効果出やすい所につぎこめよw
値を記憶するのは、どうしようもなく高速化最優先の場合か、せいぜい、三角関数のテーブル化あたりだね。

262 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2010/05/31(月) 13:24:29
あれ?スペースが消えた
あ、全角じゃないとだめなのか
スレ汚ししてすいません

265 :仕様書無しさん: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 :仕様書無しさん:2010/05/31(月) 13:31:13
[1から100まで]ってのは仕様だからそれを満たさないと失格だよぅ


267 :仕様書無しさん: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 :仕様書無しさん:2010/06/01(火) 00:11:02
>>267
問題文を再確認して下さい。
時間がかかってもいいので、落ち着いて。

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

269 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2010/06/02(水) 16:33:50
while条件にi<100とか書いてる奴はクビ
range(1,100)とか書いてる奴もクビ

284 :仕様書無しさん: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 :仕様書無しさん: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 :仕様書無しさん:2010/06/02(水) 17:56:24
…出力結果をlha圧縮したら、202バイトになった。
コマンド「lhasa a.lzh」と合わせても、213バイト。

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

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

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

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

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

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

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

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

294 :仕様書無しさん: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 :仕様書無しさん:2010/06/04(金) 00:58:12
おめでとうございます

296 :仕様書無しさん: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 :仕様書無しさん:2010/06/04(金) 12:41:52
100が変動することも踏まえて定数にすべきだよな

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

とかに変えたりな

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

300 :仕様書無しさん: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 :仕様書無しさん:2010/06/06(日) 02:00:29
pythonはコピペに向かない

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

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

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

306 :仕様書無しさん:2010/06/25(金) 15:51:42
dc

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

307 :仕様書無しさん: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 :仕様書無しさん:2010/07/28(水) 23:27:57
これは酷い…。

309 :仕様書無しさん: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 :仕様書無しさん:2010/07/29(木) 15:52:42
ごめん、 fcint=3, bcint=5, fc=fcint-1, bc=bcint-1で、
ループ内が、fc=fcint, bc=bcintだね。
上のでも正常に動くけど。

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

312 :仕様書無しさん: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 :仕様書無しさん:2010/09/22(水) 00:04:40
>>312
printfの引数、なにそれ?

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

316 :仕様書無しさん: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 :仕様書無しさん:2010/09/25(土) 01:08:43
あ、いけね俺も失敗してら。結果は見た目正常風だとは思うが。

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

319 :仕様書無しさん: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 :仕様書無しさん:2010/10/23(土) 23:07:51
Webプログラムじゃないのに{}を省略する理由はなんだろうか?
俺が昔読んだ本では{}は省略するなとあったけど
流行かな?

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

>>320
宗教論争

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

int main(void)
{
int a;

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

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

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

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

return 0;
}


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

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

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

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

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

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

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

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


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


347 :仕様書無しさん:2011/06/11(土) 21:07:23.93
Link: http://codepad.org/OUmFv01u

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

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

348 :仕様書無しさん:2011/06/11(土) 21:09:13.71
Link: http://codepad.org/LsWu5lBF

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


Output:
Segmentation fault

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

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

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


351 :仕様書無しさん:2011/06/12(日) 18:18:48.82
平凡

use strict ;

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


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

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

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

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


















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


355 :uy ◆yyC0rYWEq2 :2011/06/16(木) 22:02:56.19
メタでかけよ

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


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


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

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


360 :仕様書無しさん:2011/07/08(金) 12:32:30.06
using System;

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

361 :仕様書無しさん:2011/07/08(金) 20:37:40.13



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

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

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






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

;未RUN

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

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

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

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

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

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

368 :仕様書無しさん:2011/08/07(日) 04:17:05.04
#include <stdio.h>

main(void){
int i = 0,flag = 0;
while(i < 101){
if(i % 3 == 0){
printf("Fizz");
flag = 1;
}
if(i % 5 == 0){
printf("Buzz");
flag = 1;
}
if(flag == 1){
printf("%d\n",i);
}else{
printf("\n");
}
flag = 0;
i ++;
}
}

完全独学+初心者+ゲームしか作った事ねぇ・・・
俺ダメダメかのぉ?orz

369 :仕様書無しさん:2011/08/07(日) 04:20:51.13
見返したら色々間違えてる。なんかカオス。
俺赤面。こんな時間に眠い目こするからいけなかったんだ(言い訳

もう寝る。お休み

370 :仕様書無しさん:2011/08/07(日) 07:29:01.96
本物のマなら、寝ずにデバッグする。

371 :仕様書無しさん:2011/08/07(日) 17:07:39.64
真のマなら、寝て起きてからデバッグする。

372 :仕様書無しさん:2011/08/07(日) 18:05:59.34
>>371
それは正しい

373 :仕様書無しさん:2011/08/07(日) 18:50:41.19
俺ぐらいになると寝てる間にデバッグするね

374 :仕様書無しさん:2011/08/07(日) 20:10:30.23
>>368
関数の型をうろ覚えで済ますな、ぐぐれ

ループの範囲が1から100までなんだから、素直に1と100をコードに入れられるならそうした方が見やすい
つーかループ変数の初期化とか更新とかはforを使えばもっと見やすいし、見やすければバグりにくい
最近のC/C++のforならスコープも付くしな

375 :仕様書無しさん:2011/08/25(木) 17:49:38.05
>>352

#include <stdio.h>

int disp(int num, int flag, int sizeofarray, char *s[] ) {

if (flag == sizeofarray-1)

printf("%d\n", num) ;

else

printf("%s\n",s[flag]) ;

return 0;

}



376 :仕様書無しさん:2011/08/25(木) 17:52:39.16
(続き)

int main(void) {

int num1 = 1 ;
int num2 = 100 ;
int sizeofarray = 4 ;
int a[] = {15,5,3,1} ;
char *s[] = { "FizzBuzz","Buzz","Fizz","  "};

int i,j ;

for (i = num1 ; i <= num2 ; i++) {

for (j = 0 ; j < sizeofarray ; j++){

if (i % a[j] == 0 ) {

break ;

}

}

disp(i,j,sizeofarray,*s[]) ;

}

return 0;

}

377 :仕様書無しさん:2011/08/25(木) 17:58:22.94
>>352

1 可変性

標準出力以外に出力する必要が生じたときは、disp()を修正する。
また、項目を追加する必要が生じたときは、変数の初期値を変える。

2 実行速度

可変性を重視すると、その分実行速度が落ちる。


378 :仕様書無しさん:2011/08/25(木) 19:01:16.31
>>375-376まで行くと、可変性を無駄に重視しすぎだろ
要求が変更されたら、コードを書き換えて対応するのは当たり前なんだから、ほどほどに書き換えが
やりやすくなってりゃいいのよ
実行効率どころか可読性まで大きく落として、まだ見ぬ要求変更の可能性に幅広く対応するのは無駄

379 :仕様書無しさん:2011/08/26(金) 15:09:14.82
ユーザー様から、仕様の大幅変更の要求が来た。
3で割り切れたときはFizz、5で割り切れたときはBuzz、
3と5で割り切れたときはFizzBuzzでいいんだけど、
それに加えて、7のときはGizz、13のときはKizz、
3と7のときはFizzGizz、3と13のときはFizzKizz、
5と7のときはBuzzGizz、5と13のときはBuzzKizz、
7と13のときはGizzKizzだ。
それから、計算の範囲は、1から100ではなく、100から1000までね。
修正作業をすぐにやってくれ。締め切りは明日ね。

380 :仕様書無しさん:2011/08/26(金) 15:17:48.71
int num1 = 100 ;
int num2 = 1000 ;
int sizeofarray = 11 ;
int a[] = {91,65,39,35,21,15,13,7,5,3,1} ;
char *s[] = { "GizzKizz","BuzzKizz","FizzKizz","BuzzGizz","FizzGizz","FizzBuzz","Kizz","Gizz","Buzz","Fizz","  "};

よかった。
実行効率どころか可読性まで大きく犠牲にして、
まだ見ぬ要求変更の可能性に幅広く対応したコードを書いておいて…

381 :仕様書無しさん:2011/08/26(金) 17:24:33.68
そんなピンポイントな仕変出す客おるかいw

382 :仕様書無しさん:2011/08/26(金) 17:42:45.50
105(3,5,7で割れる)とかどうするんだろ、って思ったけどたぶんBuzzGizzなんだろうなぁ

直接"FizzBuzz"とか書かず、割れた数から出力すれば楽だと思ったんだが、そうするとFizzBuzzGizzになっちゃうんだよなぁ
Fizz,Buzz,…の数だけフラグ用意して、立てたり立てなかったりしつつ、その後3本以上になったら小さいほうを折って…って面倒だわ

383 :仕様書無しさん:2011/08/26(金) 19:36:59.46
その前にギャラの話をしようじゃないか…

384 :仕様書無しさん:2011/08/26(金) 21:33:38.93
つーかその程度の変更なら、丸々書き換えても30分も要らんだろw

385 :仕様書無しさん:2011/08/27(土) 00:02:00.57
面倒なだけで興味をひかないネタだな
こういうところにもその人のスキルって出るよな
よって>>379は低スキルのバカグラマー

386 :仕様書無しさん:2011/08/27(土) 02:50:52.15
明らかに>>375-376に都合のいいように考えただけの仕様だもんな

387 :仕様書無しさん:2011/08/27(土) 02:55:14.40
3で割り切れる時は3倍、5で割り切れる時は5倍にして表示してね、という簡単な変更要求が来た途端、
可変性が高いつもりでただ重いだけの無駄コードと化すしな

388 :仕様書無しさん:2011/08/27(土) 02:55:56.16
可読性が落ちてることが一番問題じゃね?

389 :仕様書無しさん:2011/08/27(土) 15:09:54.05
この程度の規模のコードで、コードの再利用を考慮しすぎるのはムダ。
仕様変更に伴って書き直した方が早い。

>>1のリンク先には
> ちゃんとしたプログラマであれば、これを実行するプログラムを
> 2分とかからずに紙に書き出せるはずだ。怖い事実を聞きたい?
> コンピュータサイエンス学科卒業生の過半数にはそれができないのだ。
> 自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。
とある。

2分とかからずに書き出せる程度の規模のコードで再利用とかムダムダ。
仕様変更があったら数分かけて書き直せ。

390 :仕様書無しさん:2011/08/27(土) 21:59:59.72
int sizeofarray = sizeof(a) / sizeof(a[0]);
くらい書け(もちろん宣言の順序も入れ替えて)、と思ったけど、どっちにしろ配列サイズが一致しないバグ
を抱える可能性が気持ち悪いから、本気でやるなら三次元配列かstruct/classの配列にすべきか
あと、末尾のダミー文字列が気持ち悪すぎるけど、これ無くても鼻から悪魔出ないよね?

でも実際問題としては>>389に完全同意

391 :仕様書無しさん:2011/08/27(土) 22:08:29.33
unsignedも付けろ

392 :仕様書無しさん:2011/08/27(土) 23:12:30.03
>>391
追加料金が1人月発生しますが良いですか?

393 :仕様書無しさん:2012/02/09(木) 02:03:42.02
さあ、忘れたころにやってくる。


394 :仕様書無しさん:2012/02/12(日) 22:03:06.96
ひよこグミを参考にしながらOpenCOBOLでショートコーディングに挑戦してみました

IDENTIFICATION DIVISION.
PROGRAM-ID. FIZZBUZZ.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 N PIC 999.
PROCEDURE DIVISION.
RU-PU.
  ADD 1 TO N
  IF 0 = N(3:) OR 5 = N(3:)
    IF N = N / 3 * 3
      DISPLAY "FizzBuzz"
    ELSE
      DISPLAY "Buzz"
    END-IF
  ELSE
    IF N = N / 3 * 3
      DISPLAY "Fizz"
    ELSE
      DISPLAY N(3 - 0 ^ (9 / N):)
    END-IF
  END-IF
  IF N < 100
    GO RU-PU
  END-IF
  STOP RUN.


395 :仕様書無しさん:2012/02/13(月) 22:10:32.70
RU-PU. がいいね。

396 :仕様書無しさん:2012/02/14(火) 01:26:49.30
これでいいのかな?VB.net

Dim fizz As String = "Fizz"
Dim buzz As String = "Buzz"
Dim i As Integer

For i = 1 To 100

Dim fl As Boolean = True

If i Mod 3 = 0 Then
rtAnswer.Text &= fizz
fl = False
End If

If i Mod 5 = 0 Then
rtAnswer.Text &= buzz
fl = False
End If

If fl Then
rtAnswer.Text &= i
End If

rtAnswer.Text &= " "

If i Mod 10 = 0 Then
rtAnswer.Text &= vbCrLf
End If

Next

397 :仕様書無しさん:2012/02/14(火) 20:47:20.57
>If i Mod 10 = 0 Then
???

398 :仕様書無しさん:2012/02/14(火) 21:31:53.79
>>397
10個ごとに改行入れるってことだろ?見やすくするために

399 :仕様書無しさん:2012/02/14(火) 21:53:06.43
引用のおっさんここにもいるのか

400 :仕様書無しさん:2012/02/16(木) 03:14:53.62
なんだ 引用のおっさん て?

401 :仕様書無しさん:2012/04/09(月) 23:59:48.08
FizzBuzzクイズ

1.fizz.buzz #=> 1
3.fizz.buzz #=> "Fizz"
5.fizz.buzz #=> "Buzz"
15.fizz.buzz #=> "FizzBuzz"

となるようなメソッドfizz、buzzは定義可能か?
可能である場合、同様にgizzを追加定義し、
7.fizz.buzz.gizz #=> "Gizz"
21.fizz.buzz.gizz #=> "FizzGizz"
35.fizz.buzz.gizz #=> "BuzzGizz"
105.fizz.buzz.gizz #=> "FizzBuzzGizz"
105.fizz.gizz.buzz #=> "FizzGizzBuzz" と拡張・応用ができるか?

メソッドのコールに()が必須の言語では 3.fizz().buzz() 形式でも構わない。
オープンクラス機構やメソッドのない言語では関数(buzz(fizz(3)) #=> "Fizz" など)で。

402 :仕様書無しさん:2012/04/13(金) 07:19:33.65
マクロでもいいの?

403 :仕様書無しさん:2012/04/18(水) 09:12:04.42
import threading
fbdata = threading.local()

def fb(x, cnd, msg):
if isinstance(x, int):
fbdata.m = n = x
s = ""
else:
n = fbdata.m
s = x
if cnd(n):
return s + msg
elif s:
return s
else:
return n

def fizz(n): return fb(n, lambda n: n%3==0, "Fizz")
def buzz(n): return fb(n, lambda n: n%5==0, "Buzz")
def gizz(n): return fb(n, lambda n: n%7==0, "Gizz")

assert fizz(1) == 1
assert fizz(3) == "Fizz"
assert buzz(fizz(1)) == 1
assert buzz(fizz(3)) == "Fizz"
assert buzz(fizz(5)) == "Buzz"
assert buzz(fizz(15)) == "FizzBuzz"
assert gizz(buzz(fizz(105))) == "FizzBuzzGizz"
assert buzz(gizz(fizz(105))) == "FizzGizzBuzz"

404 :仕様書無しさん:2012/06/11(月) 17:13:15.00
for i in range(100): print "Fizz"*(i%3/2) + "Buzz"*(i%5/4) + str(i+1)*(((1-i%3/2)**2+(1-i%5/4)**2)/2);

405 :仕様書無しさん:2012/10/07(日) 03:27:33.68
#!ruby
module FizzBuzzIF
def fizz; fbg(3,"Fizz"); end
def buzz; fbg(5,"Buzz"); end
def gizz; fbg(7,"Gizz"); end
end

class MyStr < String
def initialize(a,str)
super str
@num = a
end
include FizzBuzzIF
def fbg(n,str)
@num%n == 0 ? self.concat(str) : self
end
end

class Integer
include FizzBuzzIF
def fbg(n,str)
self%n == 0 ? MyStr.new(self,str) : self
end
end


406 :仕様書無しさん:2012/10/07(日) 03:28:19.30
1.fizz.buzz #=> 1
3.fizz.buzz #=> "Fizz"
5.fizz.buzz #=> "Buzz"
15.fizz.buzz #=> "FizzBuzz"
7.fizz.buzz.gizz #=> "Gizz"
21.fizz.buzz.gizz #=> "FizzGizz"
35.fizz.buzz.gizz #=> "BuzzGizz"
105.fizz.buzz.gizz #=> "FizzBuzzGizz"
105.fizz.gizz.buzz #=> "FizzGizzBuzz"

407 :仕様書無しさん:2012/10/07(日) 06:58:51.71
function kuso(n) {
 switch(n) {
  default: return n;
  case 3: return 'Fizz';
  case 5: return 'Buzz';
  case 6: return 'Fizz';
  case 9: return 'Fizz';
  case 10: return 'Buzz';
  case 12: return 'Fizz';
  case 15: return 'FizzBuzz';

とかネタで書いてたら、こういう発想のコードに実際関わる羽目に遭った時の記憶が蘇って嫌になった

408 :仕様書無しさん:2012/10/07(日) 09:37:12.06
function kuso(n) {
 switch(n) {
  default: return n;
  case 3:
  case 6:
  case 9:
  case 12: return 'Fizz';

  case 5:
  case 10: return 'Buzz';

  case 15: return 'FizzBuzz';

でいいだろうにな

409 :仕様書無しさん:2012/10/08(月) 11:02:35.21
そうじゃねぇだろwww

410 :仕様書無しさん:2012/10/09(火) 00:21:09.06
>>407
三菱MDISに逝かされた時に、リアルでそんなのが3千行ぐらい延々と続く
ソースコードの改修を押し付けられたな…・。

もう二度と逝かない。

411 :仕様書無しさん:2012/10/09(火) 01:14:03.88
平気で0〜99とか1〜99とかになってるコードの多さに戦慄するスレ

412 :仕様書無しさん:2012/10/09(火) 21:21:50.29
Duff's Deviceはふつくしいけど見たくない。


413 :仕様書無しさん:2012/10/10(水) 00:57:25.52
>>410
なんか理由あってそうやってんのかな?それとも池沼が作ったのか。

414 :仕様書無しさん:2012/10/10(水) 01:25:54.46
世界には池沼が書いたコードが溢れてる
マジで溢れかえってる

415 :仕様書無しさん:2012/10/10(水) 15:20:49.27
こんなcaseハックテクもある。

aho(int *crLine) {

switch(*crLine){
*crLine =__LINE__; return ; case __LINE__:;
*crLine =__LINE__; return ; case __LINE__:;
*crLine =__LINE__; return ; case __LINE__:;
}

}

416 :仕様書無しさん:2012/10/11(木) 02:01:10.28
public class a {
  public static void main(String[] args) {
    for (int i = 1; i <= 100; i++) {
      String s = "";
      s = fizz(i, s);
      s = buzz(i, s);
      s = numz(i, s);
      System.out.println(s);
    }
  }
  static String fizz(int i, String s) {
    if (i % 3 == 0) {
      return s + "Fizz";
    } else {
      return s;
    }
  }
  static String buzz(int i, String s) {
    if (i % 5 == 0) {
      return s + "Buzz";
    } else {
      return s;
    }
  }
  static String numz(int i, String s) {
    if (s.length() < 1) {
      return String.valueOf(i);
    } else {
      return s;
    }
  }
}

417 :仕様書無しさん:2012/10/11(木) 04:33:26.72
Class C
  Dim N
  Dim S
  
  Sub Main
    For N = 1 To 100
      S = ""
      Fizz : Buzz : Numz
      WScript.StdOut.WriteLine S
    Next
  End Sub
  
  Sub Fizz
    If N Mod 3 = 0 Then
      S = S & "Fizz"
    End If
  End Sub
  
  Sub Buzz
    If N Mod 5 = 0 Then
      S = S & "Buzz"
    End If
  End Sub
  
  Sub Numz
    If S = "" Then
      S = CStr(N)
    End If
  End Sub
End Class

Call New C.Main

418 :仕様書無しさん:2013/09/22(日) 14:22:28.53
twitter.com/paiza_official
paizaの公式アカウントの背景に
fizzbuzz問題を解け。ただし、剰余は使わないこと
という画像があったんだが、剰余を使わないで解くことってできるの?

419 :仕様書無しさん:2013/09/22(日) 14:38:34.16
剰余演算子を使わない、ならこのスレにもいくつかある。

420 :仕様書無しさん:2013/09/22(日) 16:05:44.58
>>419
探してみたら、確かにあった
MOD使わなくても解けるとは

421 :仕様書無しさん:2013/09/22(日) 17:14:41.12
剰余を使わない、というか除算コストを嫌ったらこんな感じかなぁ

#include <stdio.h>

int main() {
 int i = 0, div3 = 0, div5 = 0;
 while (i < 100) {
  i++;
  div3++;
  div5++;
  if (div5 < 5 && div3 < 3) {
   printf("%d\n", i);
  } else if (div5 < 5) {
   div3 = 0;
   puts("Fizz");
  } else if (div3 < 3) {
   div5 = 0;
   puts("Buzz");
  } else {
   div3 = div5 = 0;
   puts("FizzBuzz");
  }
 }
}

422 :仕様書無しさん:2013/09/22(日) 20:22:11.46
除算命令を持たない8bitマイコンなんかだったら有りだな。

423 :仕様書無しさん:2013/09/22(日) 21:24:44.09
実際に >>422 であるならともかく、
倍数が関わる問題を、剰余を使わずに解決しようyとするのは
基本的にアホではないのか

424 :仕様書無しさん:2013/09/23(月) 03:03:14.11
>>423
エラトステネスの篩 disってんの?

425 :仕様書無しさん:2013/09/23(月) 15:25:42.14
for(var i=1;i<101;i++){
var str=i;
if(i%3==0)str="Fizz";
if(i%5==0)str="Buzz";
if(i%15==0)str="FizzBuzz";
document.write(str+"<br>");
}

426 :仕様書無しさん:2013/09/24(火) 05:46:22.13
>>424
エラトステネスの篩って、普通足し算でやるものかい?

427 :仕様書無しさん:2013/09/24(火) 09:07:38.52
普通はな。チミの世界では違うのか?

428 :仕様書無しさん:2013/09/24(火) 11:49:55.37
>>427
配列だと足し算、リストだと割り算、かな。

429 :仕様書無しさん:2013/09/24(火) 16:32:19.19
節子、それエラトステネスの篩ちゃう>後者

430 :仕様書無しさん:2013/09/28(土) 04:30:26.70
俺が一番最初に作ったのがカウンタ使う方法だった。
剰余演算を使う人がすんごく多いのに逆にちょっと驚いたよ。

for (i = 1, j = 1, k = 1; i <= 100; i++, j++, k++) {
if (j == 3) {
printf("Fizz");
j = 0;
}
if (k == 5) {
printf("Buzz");
k = 0;
}
if (j && k) {
printf("%d", i);
}
printf("\n");
}

431 :仕様書無しさん:2013/10/07(月) 07:16:35.86
/* 混ぜて糞コードにしてみた */
#include<stdio.h>
int main(int c,char **v){
int i,j;
 for(i=j=1;i<=100;i++,j++){
  switch(j){
  default: printf("%d\n",i); continue;
  case 3: case 6:
  case 9: case 12: printf("Fizz\n"); continue;
  case 5: case 10: printf("Buzz\n"); continue;
  case 15: j = 0; printf("FizzBuzz\n"); continue;
  }
 }
}

432 :仕様書無しさん:2013/10/12(土) 00:38:14.19
JavaScriptの再帰関数と即時関数

(function saiki(i, max) {
if (i >= max)return;
var str = i;
if (i % 3 == 0)str = "Fizz";
if (i % 5 == 0)str = "Buzz";
if (i % 15 == 0)str = "FizzBuzz";
document.body.innerHTML += str + "<br>";
saiki(i + 1, max);
})(1, 101);

433 :仕様書無しさん:2013/10/13(日) 10:16:06.08
Python2.7で書いてみた

for x in range(1,101):print[x,'Fizz','Buzz','FizzBuzz'][(x%3<1)+(x%5<1)*2]

434 :仕様書無しさん:2013/10/17(木) 02:24:19.71
Ruby2.0
夜勤の暇潰しに携帯からだからミスるかも

# coding: UTF-8

100.times do(i)
if i%3==0
 p="あはーん"
elsif i%5==0
 p="うふーん"
elsif i%3==0 && i%5==0
 p="いやんエッチ"
else
 p=i+1
end

puts p
end

435 :仕様書無しさん:2013/10/17(木) 02:27:53.25
>>434訂正

100.times do|i|

だったorz

436 :仕様書無しさん:2013/10/17(木) 03:19:11.84
pを全部aにでも訂正

437 :仕様書無しさん:2013/10/17(木) 09:34:59.61
rubyで割り算使わないでみたら長くなった・・・

a=[]
33.times do|i|
a.push(i+1)
end
j3,j5,cnt=0,0,1
100.times do
a.each do|b|
if cnt==3*b
j3=1
end
if cnt==5*b
j5=1
end
end
if j3==1 &amp;&amp; j5==0
mes="fizz"
elsif j5==1 &amp;&amp; j3==0
mes="buzz"
elsif j3==1 &amp;&amp; j5==1
mes="lenny kravitz"
else
mes=cnt
end
puts mes
cnt+=1
j3,j5=0,0
end

438 :仕様書無しさん:2013/10/18(金) 03:30:13.39
モジュロ演算子使う奴=機能豊富な時代の現代っ子
割って切り上げた値と割った値を比較する奴=浮動小数点除算が早い時代の現代っ子
3つカウンタを使う奴=ベーシックなやり方にこだわるオッサン
文字列をメソッドで比較する奴=オブジェクト至高の現代っ子
再帰関数にする奴=スタックは無限にあると思ってる現代っ子
"Fizz"と"Buzz"両方出すときは1行?2行?と聞く奴=ナイス質問だが今回は気にすんな。
表示文字列と改行コードを別に出力する奴=サンプルだから気にすんなって。
出力を区切らない奴=それでもいいんだけどちょっとは気にしろよ。
asmキーワード使うやつ=素直にニーモニックだけ書けよ。
配列に100個値を入れておいて無判定で順番に出す奴=速度命の変態乙。
"Fizz"/"Buzz"と"FizzBuzz"を別に判定する奴=新人乙。
IDENTIFICATION DIVISIONから書く奴:先輩乙。
73桁目からコメントの奴:大先輩オッスオッス。

439 :仕様書無しさん:2013/10/18(金) 13:13:30.65
Squeak Smalltalk
(1 to: 15) collect: [:n | ((#('' '' Fizz) atWrap: n), (#('' '' '' '' Buzz) atWrap: n)) ifEmpty: [n]]

440 :仕様書無しさん:2013/10/19(土) 14:23:53.28
あー、勢いで書いたら間違ってたわ。
割って切り上げた値と割った値を比較
じゃなくて
割って切り捨てた値と割った値を比較
だわ。
逝ってくるorz

441 :仕様書無しさん:2013/10/22(火) 00:39:17.71
フィボナッチ数列でFizzBuzzしようぜ

442 :仕様書無しさん:2013/10/22(火) 10:39:03.00
Squeak Smalltalk

| fibGen fizz buzz |
fibGen := Generator on: [:g | | a b | a := 0. b := 1. [g yield: (a := b flag: (b := a+b))] repeat].
fizz := #('' '' Fizz).
buzz := #('' '' '' '' Buzz).
(1 to: 100) collect: [:idx |
  | fib |
  fib := fibGen next.
  (fizz atWrap: fib), (buzz atWrap: fib) ifEmpty: [fib]]

=> #(1 1 2 'Fizz' 'Buzz' 8 13 'Fizz' 34 'Buzz' 89 'Fizz' 233 377 'Buzz' 'Fizz' 1597 2584 4181
'FizzBuzz' 10946 17711 28657 'Fizz' 'Buzz' 121393 196418 'Fizz' 514229 'Buzz' 1346269
'Fizz' 3524578 5702887 'Buzz' 'Fizz' 24157817 39088169 63245986 'FizzBuzz' 165580141
267914296 433494437 'Fizz' 'Buzz' 1836311903 2971215073 'Fizz' 7778742049 'Buzz'
20365011074 'Fizz' 53316291173 86267571272 'Buzz' 'Fizz' 365435296162 591286729879
956722026041 'FizzBuzz' 2504730781961 4052739537881 6557470319842 'Fizz' 'Buzz'
27777890035288 44945570212853 'Fizz' 117669030460994 'Buzz' 308061521170129 'Fizz'
806515533049393 1304969544928657 'Buzz' 'Fizz' 5527939700884757 8944394323791464
14472334024676221 'FizzBuzz' 37889062373143906 61305790721611591
99194853094755497 'Fizz' 'Buzz' 420196140727489673 679891637638612258 'Fizz'
1779979416004714189 'Buzz' 4660046610375530309 'Fizz' 12200160415121876738
19740274219868223167 'Buzz' 'Fizz' 83621143489848422977 135301852344706746049
218922995834555169026 'FizzBuzz')

443 :仕様書無しさん:2014/06/10(火) 20:23:30.08
Swift(Apple)で。

func fizzbuzz(x:UInt) {
for i in 1...x {
var s = ""
if i % 3 == 0 {
s += "Fizz"
}
if i % 5 == 0 {
s += "Buzz"
}
if s == "" {
print(" \(i)")
} else {
print(" \(s)")
}
}
}

444 :仕様書無しさん:2014/12/04(木) 20:56:05.20
rubi

for i in 1..100 do
print 'Fizz' if i % 5 == 0
print 'Buzz' if i % 3 == 0
print i if i % 3 != 0 and i % 5 != 0
puts ''
end

445 :仕様書無しさん:2014/12/04(木) 21:48:58.99
def fizzbuzz(times)
count = 0
while count <= times
return true
  if count % 3 == 0
puts "fizz"
return false
end
if count % 5 == 0
puts "buzz"
return false
end
if true
puts count
end
count += 1
end
end

fizzbuzz(100)

動くかどうか分からない
Ruby death

446 :仕様書無しさん:2015/03/11(水) 23:29:00.62
<?php
echo '1 2 Fizz 4 Buzz 6 7 8 Fizz Buzz 11 12 13 14 FizzBuzz ・・・

447 :仕様書無しさん:2015/03/27(金) 16:55:02.57
紙に直書きで人に見られながらだと
FizzBuzzが限界です

448 :仕様書無しさん:2015/07/30(木) 17:34:29.19
フーターズコンテストジャパンで二位だったSerinaが、
黒人に輪姦されてる動画が流出したようですね。
鮮明だし最後は狂ったように泣きながらイキまくってる。
ちんこたった。
http://subject24.xyz/black025.jpg

449 :仕様書無しさん:2015/08/23(日) 17:36:10.01
#include <iostream>
using namespace std;
int main()
{
for(int i=1; i<=100; ++i){
if(i%3 &amp;&amp; i%5) cout << i;
else{
if(!(i%3)) cout << "Fizz";
if(!(i%5)) cout << "Buzz";
}
cout << endl;
}
return 0;
}

450 :仕様書無しさん:2016/01/30(土) 19:50:18.24
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. YARANAIKA.
000300 ENVIRONMENT DIVISION.
000400 DATA DIVISION.
000500 WORKING-STORAGE SECTION.
000600 01 I  PIC 9(3).
000700 01 HENSHU-RYOIKI.
000800  05 NUM  PIC ZZZ9.
000900 01 DUMMY-RYOIKI  PIC X(1).
001000 01 HYOJI-RYOIKI  PIC X(8).
001100 PROCEDURE DIVISION.
001200   PERFORM VARYING I FROM 1 BY 1 UNTIL IDX-01 > 100
001300    MOVE SPACE TO HYOJI-RYOIKI
001400    IF FUNCTION MOD(I 3) = ZERO
001500     MOVE

451 :仕様書無しさん:2016/01/30(土) 19:51:21.22
001500     MOVE "FIZZ" TO HYOJI-RYOIKI
001600    END-IF
001700    IF FUNCTION MOD(I 5) = ZERO
001800     STRING
001900      HYOJI-RYOIKI DELIMITED BY SPACE
002000      "BUZZ" DELIMITED BY SIZE
002100      INTO HYOJI-RYOIKI
002200     END-STRING
002300    END-IF
002400    IF HYOJI-RYOIKI = SPACE
002500     MOVE I TO NUM
002600     UNSTRING
002700      HENSHU-RYOIKI DELIMITED BY ALL SPACE
002800      INTO DUMMY-RYOIKI HYOJI-RYOIKI
002900     END-UNSTRING
003000    END-IF
003100    DISPLAY HYOJI-RYOIKI
003200   END-PERFORM.
003300   STOP RUN.

142 KB
新着レスの表示

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)