プログラマーなら「FizzBuzz問題」解けるよな?
■ このスレッドは過去ログ倉庫に格納されています
1から100までの数をプリントするプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm
言語自由 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';
とかネタで書いてたら、こういう発想のコードに実際関わる羽目に遭った時の記憶が蘇って嫌になった 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';
でいいだろうにな >>407
三菱MDISに逝かされた時に、リアルでそんなのが3千行ぐらい延々と続く
ソースコードの改修を押し付けられたな…・。
もう二度と逝かない。 平気で0〜99とか1〜99とかになってるコードの多さに戦慄するスレ Duff's Deviceはふつくしいけど見たくない。
>>410
なんか理由あってそうやってんのかな?それとも池沼が作ったのか。 世界には池沼が書いたコードが溢れてる
マジで溢れかえってる こんなcaseハックテクもある。
aho(int *crLine) {
switch(*crLine){
*crLine =__LINE__; return ; case __LINE__:;
*crLine =__LINE__; return ; case __LINE__:;
*crLine =__LINE__; return ; case __LINE__:;
}
} 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;
}
}
} 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 twitter.com/paiza_official
paizaの公式アカウントの背景に
fizzbuzz問題を解け。ただし、剰余は使わないこと
という画像があったんだが、剰余を使わないで解くことってできるの? 剰余演算子を使わない、ならこのスレにもいくつかある。 >>419
探してみたら、確かにあった
MOD使わなくても解けるとは 剰余を使わない、というか除算コストを嫌ったらこんな感じかなぁ
#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");
}
}
} 除算命令を持たない8bitマイコンなんかだったら有りだな。 実際に >>422 であるならともかく、
倍数が関わる問題を、剰余を使わずに解決しようyとするのは
基本的にアホではないのか 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>");
} >>424
エラトステネスの篩って、普通足し算でやるものかい? >>427
配列だと足し算、リストだと割り算、かな。 俺が一番最初に作ったのがカウンタ使う方法だった。
剰余演算を使う人がすんごく多いのに逆にちょっと驚いたよ。
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");
} /* 混ぜて糞コードにしてみた */
#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;
}
}
} 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); Python2.7で書いてみた
for x in range(1,101):print[x,'Fizz','Buzz','FizzBuzz'][(x%3<1)+(x%5<1)*2] 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 >>434訂正
100.times do|i|
だったorz 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 && j5==0
mes="fizz"
elsif j5==1 && j3==0
mes="buzz"
elsif j3==1 && j5==1
mes="lenny kravitz"
else
mes=cnt
end
puts mes
cnt+=1
j3,j5=0,0
end モジュロ演算子使う奴=機能豊富な時代の現代っ子
割って切り上げた値と割った値を比較する奴=浮動小数点除算が早い時代の現代っ子
3つカウンタを使う奴=ベーシックなやり方にこだわるオッサン
文字列をメソッドで比較する奴=オブジェクト至高の現代っ子
再帰関数にする奴=スタックは無限にあると思ってる現代っ子
"Fizz"と"Buzz"両方出すときは1行?2行?と聞く奴=ナイス質問だが今回は気にすんな。
表示文字列と改行コードを別に出力する奴=サンプルだから気にすんなって。
出力を区切らない奴=それでもいいんだけどちょっとは気にしろよ。
asmキーワード使うやつ=素直にニーモニックだけ書けよ。
配列に100個値を入れておいて無判定で順番に出す奴=速度命の変態乙。
"Fizz"/"Buzz"と"FizzBuzz"を別に判定する奴=新人乙。
IDENTIFICATION DIVISIONから書く奴:先輩乙。
73桁目からコメントの奴:大先輩オッスオッス。 Squeak Smalltalk
(1 to: 15) collect: [:n | ((#('' '' Fizz) atWrap: n), (#('' '' '' '' Buzz) atWrap: n)) ifEmpty: [n]] あー、勢いで書いたら間違ってたわ。
割って切り上げた値と割った値を比較
じゃなくて
割って切り捨てた値と割った値を比較
だわ。
逝ってくるorz 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') 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)")
}
}
} 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 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 <?php
echo '1 2 Fizz 4 Buzz 6 7 8 Fizz Buzz 11 12 13 14 FizzBuzz ・・・ 紙に直書きで人に見られながらだと
FizzBuzzが限界です フーターズコンテストジャパンで二位だったSerinaが、
黒人に輪姦されてる動画が流出したようですね。
鮮明だし最後は狂ったように泣きながらイキまくってる。
ちんこたった。
http://subject24.xyz/black025.jpg #include <iostream>
using namespace std;
int main()
{
for(int i=1; i<=100; ++i){
if(i%3 && i%5) cout << i;
else{
if(!(i%3)) cout << "Fizz";
if(!(i%5)) cout << "Buzz";
}
cout << endl;
}
return 0;
} 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 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. FizzBuzzくらいググりゃコードくらい出てくるしコピペ最有力コードじゃねえか 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
GUXZSIC6RT とても簡単な自宅で稼げる方法
参考までに書いておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
8GEXJ Googleのエンジニア様らしいけどもFizzBuzz解けなかった
h ttps://twitter.com/d0iasm/status/1257645577321320450
h ttps://twitter.com/hikalium/status/1257641052145455104
https://twitter.com/5chan_nel (5ch newer account) ■ このスレッドは過去ログ倉庫に格納されています