引用元: ・プログラマーなら「FizzBuzz問題」解けるよな?
ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm
言語自由
>>1 のリンク先すら読まない莫迦が
そんだけ沢山いるってことでしょうな。
>>1から100までの数をプリントするプログラムを書け。
>ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
とあるのに3や5をプリントアウトしたらただの間違いだろ。
問題をちゃんと読んでねぇアホじゃねーか。
あー そこか
何が間違ってる?1読んで正しい結果出てると思うんだけど。
仕様変更に伴って書き直した方が早い。
>>1のリンク先には
> ちゃんとしたプログラマであれば、これを実行するプログラムを
> 2分とかからずに紙に書き出せるはずだ。怖い事実を聞きたい?
> コンピュータサイエンス学科卒業生の過半数にはそれができないのだ。
> 自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。
とある。
2分とかからずに書き出せる程度の規模のコードで再利用とかムダムダ。
仕様変更があったら数分かけて書き直せ。
くらい書け(もちろん宣言の順序も入れ替えて)、と思ったけど、どっちにしろ配列サイズが一致しないバグ
を抱える可能性が気持ち悪いから、本気でやるなら三次元配列かstruct/classの配列にすべきか
あと、末尾のダミー文字列が気持ち悪すぎるけど、これ無くても鼻から悪魔出ないよね?
でも実際問題としては>>389に完全同意
|| !| │ ,.-─‐-.、
=||=!| │ /:::::::::::::::::::::ヽ
|| !| │ |:::: ::::::::::::::::::::::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_____, -ー‐‐‐‐’ ´ `ー’
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 ount%
set /a count+=1
if ount% gtr 100 (
goto :END
) else (
goto :START
)
:END
pause
exit
#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 );
}
}
}
その3 ifも忘れた人のため
#include <stdio.h>
char *fz[16]={“”,” “,” “,”Fizz “,” “,”Buzz “,”Fizz “,
” “,” “,”Fizz “,”Buzz “,” “,”Fizz “,” “,” “,”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);
}
いや、それだとこれと変わらなくて興が削がれるからだめだろ。
#include <stdio.h>
char *fz[16]={“”,” “,” “,”Fizz “,” “,”Buzz “,”Fizz “,
” “,” “,”Fizz “,”Buzz “,” “,”Fizz “,” “,” “,”FizzBuzz “};
int main( ) {
unsigned int i;
for( i = 1; i <= 100; ++i )printf( fz[i-i/15*15],i);
}
#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( ” “, (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);
}
}
{
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”);
・・・・
}
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
無限ループだわ(´・ω・`)
動くか知らんが
無茶いうな
今は世界のナベアツ
とりあえず何も考えずに作ったなべあつ
#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(“”,i);
if((i % 3 == 0) || include3(i)){printf(“!”);}
printf(“\n”);
}
return 0;
}
ム板だろ
>>15回に1回ごとに3と5の倍数が来ることを想定して配列に代入しているという
>理解でいいのかな。
全然違う。
関数compactが15で割った余りを(%演算子無しで)計算しているのがポイント。
下から4bitづつに区切って(まぁ上からでも同じだけど)、それを全部足したものと元の値では
15で割った余りが同じになることを利用している。
なぜそうなるかはちょっと頭をしぼって考えてみな
違っていたか。しぼって考えてみます。
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);
}
}
const char *pbuzz = “buzz”;
const char *psuhzi = “”; //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
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
}
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(” “,i);
}
printf(“\n”);
}
return 0;
}
{
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());
}
}
}
{
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(“\n”, str);
}
else {
printf(“\n”,i);
}
}
}
これで手を打てw
print(“鬼才現る”)
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();
}
}
#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(“\n”, i);
}
return (0);
}
#include <stdio.h>
const char *s[] = {
“FizzBuzz\n”, “\n”, “\n”, “Fizz\n”, “\n”, “Buzz\n”, “Fizz\n”,
“\n”, “\n”, “Fizz\n”, “Buzz\n”, “\n”, “Fizz\n”, “\n”, “\n”
};
int main() {
int i;
for (i = 1; i <= 100; i++) {
printf(s[i % 15], i);
}
}
@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
それ以外ではレス番号を書き込んでください。
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);
}
}
}
int main(int,char**)
{
int i = 0;
while( ++i <= 100 )
printf((i%15) ? “FizzBuzz\n” : ((i%3) ? “Fizz\n” : ((i%5) ? “Buzz\n” : “\n”) ) , i );
return 0;
}
#include<stdio.h>
int main(int,char**)
{
int i = 0;
while( ++i <= 100 )
printf( (i%15) ? ( (i%3) ? ( (i%5) ? “\n” : “Fizz\n”) : “Buzz\n” ) : “FizzBuzz\n” , i );
return 0;
}
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(\”\”);\n”, i);
}
printf(“\treturn 0;\n”);
printf(“}\n”);
return 0;
}
だったらそのままコンパイルから実行までやっちゃおうぜ
#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, “”, i );
fprintf( f, “\” & vbcrlf\n” );
}
fprintf( f, “MsgBox(s)\r\n” );
fclose( f );
system( “a.vbs” );
}
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);
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();
}
}
}
よい子が約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);
}
}
ぴゅう太とかリアルで動かしてくれたら泣ける。
ググレカス
つってもCやVB系は書いたし他のメジャーなんも出たからさぁ。
変な奴こねえかなぁ。そういやDelphiねーな。
for ($i=0 ; $i<100 ; $i++ ){
$a=$i;
if (!$i%3)$a.=”fizz”;
if (!$i%5)$a.=”buzz”;
echo $a;
}
?>
for( $i = 1; $i <= 100; … ) だな。
常に数値が出るぞ。要件を良く見よう。
かめさん!ペンなし。
かめさん!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)) 向き。
」実行。
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
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
う、うん。それでいいよ。
俺が悪かったよ。
<?php
for ($i=1 ; $i<101 ; $i++ ){
$a=””;
if (!$i%3)$a.=”fizz”;
if (!$i%5)$a.=”buzz”;
if ($a=””)$a=$i;
echo $a;
}
?>
orz
for ($i = 1; $i <= 100; $i++) {
print (!($i % 15) ? “FizzBuzz\n” :
!($i % 5) ? “Buzz\n” :
!($i % 3) ? “Fizz\n” : “$i\n”);
}
print “PHPがバカにされる理由がわかった。\n”;
という話になっていて、元の話の「プログラムを書けない奴をどうするか?」
と言う話はほとんど出てないのな。
日本じゃどの現場でも、プログラムが全く書けない奴を抱えて困った経験など、
してないんだろうか?
うんそうだよw極例だが
部長は設計できない、実装できない、捏造完璧
課長は設計嘘っぽい、実装嘘っぽい、報告うまい
主任は実装できそう、設計できない、ごますりうまい
正社員は実装できそう、ごますりうまそう
派遣は実装できる、設計もできる
プログラムの書ける人が困るのが日本式だぜw
書けない奴はこんな問題、
ある意味歯牙にもかけないだろ
(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)))
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
掲示板に投稿するとオフサイドルールが・・・
助けてほしいぉ
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 = “”;
//表示する数字の変数
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;
}
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;
}while(*pt_tgt != guard)
pt_tgt = pt_st;
//表示
do{
printf(“\s\n”pt_tgt++);
}while(*pt_tgt != guard);
return 0;
}//環境無いからデバッグして無い。もしかしたら動くかも?
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
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
if (num) {
fizzbuzz(num-1);
switch( (((num % 5) == 0) << 1) | ((num % 3) == 0) ) {
case 0: printf(“\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); }
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(“”,argc);
break;
}
printf(“¥n”);
}
return (0);
}
俺用しおり
ここまで暗記
============================
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
言語はCで
これ以上短くなるかな
ワロタ
三項演算子は思いついたがそんな使い方があるとは
void main(i){for(i=1;i<101;){
if(i%5&&i%3)printf(“”,i);
printf(i%3?””:”Fizz”);
printf(i++%5?””:”Buzz”);
puts(“”);}}
俺の技量ではとても100Bytesは切れん。>>102が神すぐる。
>>90の73Bytesってのはどんなバケモノコードか見てみたいな。
ここにいる人達はどう考えても天才ですよね?
いいえ違います
ここにいる人達は毎日
おい○○、あれやっておけ
おい○○、明日までにデスマでこれデバレ
おい○○、パン買って来いあと報告書ここ修正
おい○○、出張いってこい
おい○○、よかったな某大手Nに売られるぞw
こんな感じで虐げられた下級民族以下の扱いを
毎日受けています
答え=「」
足す数=0
100回(
足す数=足す数+1
一時3=足す数%3
もし、一時3=0 ならば、答え=答え&「FIZZ」
一時5=足す数%5
もし、一時5=0 ならば、答え=答え&「BUZZ」
もし、(一時3<>0)かつ(一時5<>0)ならば、答え=答え&足す数
答え=答え&「¥n」
)
答えと、表示。
分かりにくっ!
プログラムとしても日本語としても分かりにくっ!
なんかね、根っこがBASICで、それを日本語に訳しただけって感じがするよ、ひまわり。
コンピュータからして英語圏発祥だから仕方ないのかなあ。
(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))
for i in range(100):print i+1,i%3/2*”Fizz”+i%5/4*”Buzz”or-~i
133バイトが最小だと思ってたけど、何か言語仕様変わったのかな。
試しにanarchy golfに登録してみたら、ちゃんと登録できたし
http://golf.shinh.org/p.rb?FizzBuzz
for(;i<101;puts(i++%5?””:”Buzz”))
printf(i%3?i%5?””:””:”Fizz”,i);
}
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
http://d.hatena.ne.jp/scinfaxi/20080517/1210970917
while(++a<100){
printf(“\n\r”,a);
if(!(a%3))printf(“Fizz”);
if(!(a%5))printf(“Bizz”);
}}
最初の改行が削れなかった。
mainの第1引数であることに今さら気づいたorz
とか思う俺はKY?
バイナリゴルフもやる人はやるみたい
あと、ちょっと違うかもだけど、例えばあなごるなら
http://golf.shinh.org/l.rb?out
http://golf.shinh.org/l.rb?z8b
こういうのもあるよ
KYだなぁ。たぶんお前が思ってるよりずっと大きな意味で。
K神奈川県
Y横浜市
<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>
main(i,j){printf(i%3*i%5?”\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=”\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?””: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?”\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?””:j:j+1,i),puts(i%5?””:j+6),main(i+1,”\0Fizz\0Buzz”);}
main(i,j){i<101?printf(j%3?j%5?””:””:”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?””:a:a+6,i);}
main(i,j){if(i<101)printf(i++%3?j?””:””:”Fizz”,i)+puts(“\0Buzz”+!j),main(i,i%5);}
main(i,j){i<101?printf(i++%3?j?””:””:”Fizz”,i)+puts(“\0Buzz”+!j),main(i,i%5):0;}
main(i){for(;i<101;puts(i++%5?””:”Buzz”))printf(i%3*i%5?””:i%3?””:”Fizz”,i);}
main(i,j){for(;j=i%5,i<101;puts(“Buzz”-!!j))printf(i++%3?j?””:””:”Fizz”,i);}
main(i,j){for(;j=i%5,i<101;puts(“Buzz”-!!j))printf(i++%3?j?””:0:”Fizz”,i);}
main(i){for(;i<101;puts(“\0Buzz”+!(i++%5)))printf(i%3?i%5?””:0:”Fizz”,i);}
main(i){for(;i<101;puts(“Buzz”-!!(i++%5)))printf(i%3?i%5?””:0:”Fizz”,i);}
main(i){for(;i<101;puts(i++%5?””:”Buzz”))printf(i%3?i%5?””:””:”Fizz”,i);}
main(i){for(;i<101;puts(i++%5?””:”Buzz”))printf(i%3?i%5?””:0:”Fizz”,i);}
コンパイラ依存の力技含め色々やったが、どうしても74文字が限界。
73文字ってどうやるのだろう。。
main(i){for(;i<101;puts(i++%5?””:”Buzz”))printf(i%3?”¥r”:”Fizz”,i);}
本当にありがとうございました。
八ツ橋だろ
洋館です
ヨーグルト
遊園地
後楽園
遊園地で、ぼ
くとあくし
ゅ
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;
}
}
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
(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
]
wd&>((0 i.~15 3 5|]){((;;])’Fizz’;’Buzz’),<)”0>:i.100
このコピペしてる莫迦。
最近夜遅くまでゲームしてしまい朝起きるのがつらいです。
夜更かしは美容と良い仕事の大敵なんでほどほどにしないと・・・。
さてさて本日から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」の条件はうすうすばれているようですが・・・・。
一緒に音ゲー板に帰るぞ
ていうかとっくに解析されてるのにいまさらマ板に持ってくるなよ
見え透いてる。
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(“\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; }
指摘とかしてもらえる?
<?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;}
{
?>
あからさまに括弧の対応が変。
最初からやり直せ。
thx
>>145
そうします。。thx
print “…”;}
}elseif
}が1つ余計じゃない?
ちゃんとインデントして、括弧の位置をそろえると、
無駄な作業を減らせるよ
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
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);
}
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
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);
}
}
フツーに書いた方が簡単な希ガスw
foreach(1..100){
print ‘Fizz’ if $_ % 3;
print ‘Buzz’ if $_ % 5;
print $_ unless $_ % 3 or $_ % 5;
print “\n”;
}
恥ずかしいくらい単純すぎるかな…
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();
}
}
}
#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(“”, i) ;
printf(“\n”) ;
}
}
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(“”,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();));
}
int i=1;
void fb(){printf(“FizzBuzz\n”);}
void f(){printf(“Fizz\n”);}
void b(){printf(“Buzz\n”);}
void n(){printf(“\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();));
}
最初は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はどうやって宣言すればいいの?そもそも無理なの?
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)])
ついでに読みやすく分解。
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)
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();
}
}
}
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(“\n”,i);
}
return 0;
}
初心者がちょっとそれっぽく書いてみた
それっぽくはあるけど、良いコードじゃないぞ
実装するなら、実装意図を明確にするべきで、
if (!(i%15))
この記述で無理矢理論理判断に持ち込むのは、良くない例
たしかにコレでも動くけども、
このコードでは 15で割ったあまりが ==0である、ことに意味がある
関数の戻りが0/1で戻ってくるから、それを論理判断にしているわけではない
そこをはき違えると、意図が不明確で、他人が読みづらいコードになる
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(“”,i);
}
}
初心者が意見を取り入れて普通に書いた
#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()
{
修正するのもメンドクサイから放置しよ。
#include <stdio.h>
void main(void)
{
int i=0,end=100;
for(;;){
i++; printf(“\n”,i); //if(i==end)break;
i++; printf(“\n”,i); //if(i==end)break;
i++; printf(“Fizz\n”); //if(i==end)break;
i++; printf(“\n”,i); //if(i==end)break;
i++; printf(“Buzz\n”); //if(i==end)break;
i++; printf(“Fizz\n”); //if(i==end)break;
i++; printf(“\n”,i); //if(i==end)break;
i++; printf(“\n”,i); //if(i==end)break;
i++; printf(“Fizz\n”); //if(i==end)break;
i++; printf(“Buzz\n”); if(i==end)break;
i++; printf(“\n”,i); //if(i==end)break;
i++; printf(“Fizz\n”); //if(i==end)break;
i++; printf(“\n”,i); //if(i==end)break;
i++; printf(“\n”,i); //if(i==end)break;
i++; printf(“FizzBuzz\n”); //if(i==end)break;
};
}
100個の結果をそのままprintfした方が早いか… orz
私がバカでした
#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”
);
};
ここで既に警告が出てるぞ。
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
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.
(パターン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,” \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;
}
#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;
}
重複さえ気をつければ他に別にひっかけがあるようなもんでは無いよね。
実は、引っかけがないことに気付く。
これが、最大の引っかけ。
プログラマの素養が関係ないような問題で素養を見ようとする意図って何なんだろうな。
結局、元のブログ主の?話題づくりに利用されているだけな気が知る
この問題すら解けない奴がいるって事なんじゃまいか?
たとえ時間を充分にかけても正答にたどり着けないような人が
現実にはたくさん面接に来るんだよ
素養があるかどうかを見るんではなくて
素養がまるでない人をふるい落とすための簡易的な試験という位置づけ
「問題用紙をめくって下さい」から、「動作確認終わりました」まで、
必ずしも2分以内に終わらないよ。
特に、自分が普段はあまり使っていないような言語では。
問題文見て、面食らってる時間とか、
改行コードの出力、全パターンで共用した方がいいのかどうか思案する時間とか、
インクルード文なんだっけ、main関数の戻り値にvoid許可されてたっけとか、
Javaのクラスパスが通ってないとかw
2分以内と言ってる人は、何度も書いてるから、2分で出来るようになっただけ。
ん?言語の指定はないんだが……
FizzBuzzの2分は誤訳だってよ。
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);
#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,””,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> 名前:<font color=\”\”><b>仕様書無しさん</b></font> </dt> “,i,s2,s3,s4);
printf(“<dd style=\”padding:1em 0em\”;></dd>”,s1);
}
printf(“</dl></body></html>”);
return 0;
}
海外っていうとレベル高そうにおもえるけど実はそうでもないんじゃ
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
1のリンク先まで必須となると、何か違うような気がする。
あと、何ていうか、「リンク先まで嫁」と、「2分以内」って、同じ部類のように思える。
自分の脳内ででっち上げた完璧さを、周囲の人に対して、期待している点において。
嫌味な言い方をすれば、配慮や謙虚さが足りないって言うか。
元ネタは採用試験の話だ、くらいはFizzBuzzより簡単にわかるよな。
配慮や謙虚さが足りないって、むしろそっちじゃないのか。
嫌味な言い方だがな。
ボクちゃんは悪くない、おまえが悪い、おまえの教え方が悪い
というのは、典型的なゆとり脳の主張ですw
ここで一応動いたよ。→http://codepad.org/
#include <stdio.h>
#define p printf
main(){int i;for(i=1;i<=100;i++)if(!p(“”,p(“”,i%3?0:”Fizz”,i%5?0:”Buzz”)?”\n”:0))p(“\n”,i);}
実行環境はなし。もしコンパイルが通らない、結果が間違っていたらその場で銃殺。
というシビアな条件で最も間違いにくいコードに最高得点をあげたい。
http://cfs.maxn.jp/neta/HQ9F+.html
※元になったのはHQ9+という、ネタ言語。
Hと入力すれば、Hello worldを出力してくれる。
http://ja.wikipedia.org/wiki/HQ9%2B
私の個人的な意見になるけど、
Fの一文字で、FizzBuzzを出力できるようにした方が、HQ9+っぽいと思うんだけどね。
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(“”,i) }
fmt.Printf(s+”¥n”)
}
}
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
str = String.new
str = n%15==0?:fizzbuzz:n%5==0?:fizz:n%3==0?:buzz:””
print ” :\n” % [n,str]
end
% を忘れると大変だぞ!
この問題で肝心なところは % と 「かつ」の && だな。あー恥ずかしい
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();
}
}
【調査】13歳までにハッキングをした経験した34%――米英の若者の実態調査(10/04/15)
http://pc11.2ch.net/test/read.cgi/pcnews/1271336569/
それってさ、漏れパスを使ったとか
正しい言い方忘れたが、「スクリプト使用のガキ」も含んででない?
223は動作は当たっているんじゃない。
% を使用しない方法ではこれでいいんじゃない?
%を使う使わない以前に結果を他のコードと比べるくらいなぜできない?
数学のテストで「計算結果は違うけど式はあってますよね」とか言うクチか。
結果は当たっているよ。書き方の問題ね。
おれが過去にかいたコードを描いたときにかんがえてた事を
予想すると、お前のその意味不明なレスもなんとなくわかるよ
おれが適当に描いた部分は、 たとえ、プログラミング知らない奴でも修正できそうなレベルだ
っていうところまではわかるか??
だれにでも解ける場所とか、自分が過去に解いた場所は適当になる
それがuy。
その適当具合は、常軌を逸しているかもしれない
問題すら適当に読むか読まないし、コンパイルチェックもしないで2chに貼り付けたりもする
たとえそれが間違っていてもどうでもいいやという気分になる
まとめると:
おれは忙しいから
無駄なことに時間は使いたくない
int reminder(int divisor, int dividend)
みたいな相当するメソッドを作るだろふつー。
直近の3と5の倍数を保持して商と比べるなんてせんでも。
void型のメソッドしか認めんwのなら別だけどさ。
コード読んでも、何やってるのかワカランかったが、
int3, i/3, int5, i/5 の値を出力してみたら、発想の奇抜さにたまげた。
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(“\n”,i); }
あと、if ((i-1)/15!=i/15) でOKだ。
%を忘れてどうこうってのがどうかしてる。馬鹿?
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でしょ
16進数で考えてみようと思ったことが無かったぜ。
mod 9 = 0 の場合に限れば、「全桁の数字を足すと9の倍数になる数は9の倍数」
っていう中学生でも知ってる話だぜ。
流石屑ニート様
よほどのヴぁかか、全然初心者レベルだろお前
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));
}
}
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
安直だなぁ、自分。
その方法が一番だよ
シンプルイズベスト
業務のプログラムであんまり凝ったコード書かれると困る
平凡にカウンタを使うほうが早い。
正しく解くだけじゃなくて高速性を考えないといけないのにわかってないアホ多すぎ
その労力は、検索アルゴリズムの選択とか、枝刈りとか、効果出やすい所につぎこめよw
値を記憶するのは、どうしようもなく高速化最優先の場合か、せいぜい、三角関数のテーブル化あたりだね。
今の時代はI/O関係なければそんなに速度なんて変わらないから
ぱっと見でわかりやすいほうがいいだろ
いつの時代だよ
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());
}
}
}
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))
見れば分かるとおり、無限ループするよ
i=0
while True:
print i,
if i%3==0:
print “Fizz”,
if i%5== 0:
print “Buzz”,
print ‘\n’
i=i+1
あ、全角じゃないとだめなのか
スレ汚ししてすいません
こう書きたかったんだろうけど、iの値が常に表示されてしまう
i=0
while True:
print i,
if i%3==0:
print “Fizz”,
if i%5== 0:
print “Buzz”,
print ‘\n’
i=i+1
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で書き直し。
問題文を再確認して下さい。
時間がかかってもいいので、落ち着いて。
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz …
#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(“\n”,pos); }
return pos;
}
int main(void)
{
int pos = 1, saikoro;
randomize();
while (pos<100)
{
saikoro = rand() % 6 + 1;
printf(“現在位置-> が出ました\n”,pos,saikoro);
pos = fizzbuzz(pos+saikoro);
}
printf(“ゴール”);
return 0;
}
if i%3==0:
print(“Fizz”,end=”)
if i%5==0:
print(“Buzz”,end=”)
i=i+1
次はLuaでやろうかな
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
こうかな?
これでどうですか、ダメですか?
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,
$c = 0;
while ($c < 100){
$c++;
print $c . “\n”;
if (($c % 3) == 0){print ” fizz\n” }
if (($c % 5) == 0){print ” bizz\n” }
}
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” }
}
2chの雑談程度で1分程度で書くとちょっと美しさにかけるな。
もう少し美しさを考えてみる
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” }
}
$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”
}
ちょっと綺麗に手直ししてくれてサンクス
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(” “,i);
}
}
return 0;
}
“,($_%3?””:”Fizz”).($_%5?””:”Buzz”)||$_ for 1..100
最短記録48byteとかどういうことなの…
print+(Fizz)[$_%3].(Buzz)[$_%5]||$_,$/for 1..100
range(1,100)とか書いてる奴もクビ
ここだな
ちなみに2010/06/02現在だと、
GolfScriptの37文字が今のところ最短
Bashが意外に短くて43文字で二位
Perl6が44文字で三位
Perlが48文字で四位
z80マシンコードが49文字で五位
それって、
1位 Bash, 2位 Perl(ver6), 3位 z80 (番外…GolfScript, HQ9F+)
のような気がする。
COBOLが、Brainf*ckやWhitespaceのようなネタ言語より、更に下…。
まあ、出力結果の414バイトよりは、小さくなるけど。
あくまでもここの仕様でのランキングだから、実質とか考える意味は無い
元々ここのランク対象外なHQ9F+を持ち出す意味も無い
COBOLが冗長なのも当たり前っちゃ当たり前
Bashっつっても実質ほぼGNU sedだから環境依存だろとか、言い出したらきりがない
コマンド「lhasa a.lzh」と合わせても、213バイト。
つまり、出力結果>>>>>Esoteric(ネタ言語)>>>>>COBOL
なにいってんのおまいら。
「おまいら」っていうか、俺一人。(286=287)
この板、ID出ないんだね。
COBOLネタで釣れると思ったら、極めて常識的な意見ばかりで、がっかりだ。
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
print s
とかに変えたりな
http://d.hatena.ne.jp/sugyan/20100321/1269174230
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
単にスペース置き換えるだけですね?
これによってXSSという世界的脅威を打破できる。
[sg[]]sx1[ddd3[Fizz]r0<xnr5[Buzz]r0<xn*0=xpsg1+dd101>M]dsMx
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)
}
}
#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(“”,c); //数は直接printfできない
}
else{
printf(f); printf(b); //文字列型ではないので、足し算しないこと(C++なら元のままでOK)
}
printf(“\n”); //できれば、改行すること
}
return 0; //main関数の戻り値
}
わお。訂正していただけて、マジ参考になりますthx
つか俺は文法勉強しなおしだー・・・
ループ内が、fc=fcint, bc=bcintだね。
上のでも正常に動くけど。
printfの引数、なにそれ?
print 2
print Fizz
print 4
print Buzz
print Fizz
…
end.
main(i){for(;i-101;puts(i++%5?””:”Buzz”)){printf(i%3?i%5?””:”Buzz”:”Fizz”,i);}}
そろそろ採用してくれる会社を紹介してください。
もっとも安く仕上げよ
条件②
運用コストは電源を入れてから1秒あたり1ドルかかる
システムは以下の性能
1. キー入力は1入力あたり1秒かかる
shiftキー等の押下・離放もカウントする
2. 文字入力は1文字あたり1ドルかかる
3. プログラム入力後、コンパイル・実行開始までの秒数はカウントしない
4. 実行は1行表示ごとに1秒かかる。表示した後同じ行に上書き表示
するようなものは、上書きの度に1秒かかる
5. 100行目(Buzz) 表示完了時までをコスト計算する
条件が曖昧すぎて、パズルとして成り立ってないよ
プロ奴隷使えば安くなるんじゃねw
>>320
宗教論争
俺が昔読んだ本では{}は省略するなとあったけど
流行かな?
括弧でわかりやすく書くとあったけど。
そういう俺もめんどくさいとき括弧を省略するけど。
LinuxカーネルやGnuみたいにメジャーなところでも、ifの{}は複文じゃなければ必ず
省略すること(ネストした時を除く)というルールを採用してる超大規模コードも
あるのよ
オフサイドルールで成り立っちゃってる言語もあるくらいだから、本当は言うほどの
危険は無いのかもしれん、と思うようになってからは、省略派に鞍替えしたというか、
元々省略してた(それでバグった記憶も無かった)ので省略派に戻ったというか
http://okajima.air-nifty.com/b/2010/01/post-abc6.html
人材獲得作戦・4 試験問題ほか
まともなプログラマーなら幅優先探索ぐらい知ってるから当然のことながら解くことが出来るよな
嫌々やるのやめて、コード整理したら、出来た。
100ステップって、ちょっと簡単に書き捨てられる量じゃない。
頭でアルゴリズム簡単に思いついても、デバッグに時間がかかるし。
「プログラマーなら出来なきゃ困る」なら、実際に書かなければならないんだから、時間のことも考えて欲しい。
あと、ブログで示されていたアルゴリズム、文系には辛いよ。
こっち系だとは思ったけど、昔、本で名前知った程度だから、ググルや参考書なしでは無理。力技しかなかった。
まあ、>>324は、スルー力検定だったのだなw
ためしにやってみた
http://hibari.2ch.net/test/read.cgi/tech/1215352849/294
>>325->>330
きにすんな
幅優先探索という言葉は知っていてもロジックを忘れてしまったから
解くのに3時間ぐらいかかった
ところで何のフリーソフト作ってる?
すごく気になるから教えて
使ってみたい
あれって、総当り方式じゃん。左側か右側かの壁伝ってくんだっけ?
>>324の問題って、なんか、「求職者を見下したい」感がヒシヒシ伝わってきて嫌。
プログラムって、もっと、大らかに、何日もかけて、じっくり楽しむべきものなんだよね。
3時間とか、時間区切ってコーディングするのは、仕事でもない限り、邪道。
マイコンロボを試行錯誤して動かしたりとか、何日も考えてパズルの最適アルゴリズムを見出したりとか。
でも、単純な幅優先なら、計算量爆発するよね。
25分~3時間か。FizzBuzz位ならともかく、やってらんない。ギブアップだわ。寝る。
幅優先探索の場合、計算時間より計算空間の方が先に破綻するんじゃ
ないかな。特にRAMの容量に限りの有る組込み制御の場合。
8bit時代は、オセロとか将棋も深さ優先探索してた。例外は森田和郎
ぐらいで、これもSSS*探索とαβ探索のハイブリッド。
まぁ、なんか面倒臭そうなので、プライド捨てるわ。
実行時間無視の書き捨てコードとかじゃ、ダメ扱いされそうだし。
予想通り、デバッグで時間取られる。
そもそも、やる気ないから、コードは汚いし。
バカバカしくなってきたから、中断する。
「まともなプログラマーなら~」って言葉に、どうしても反応してしまう。
挑発に乗っちゃうクセを直さないとね。
さらっと数行で書けるものならともかく、意味の無いコード、1時間も書かされるとちょっと。
別に、芸のある出題でもないし。
スルーして、フリーソフトのメンテしとくんだったと後悔。
デバッグ含め、1時間半か。
ちょっと無能かもしれんが、馬鹿にするなら、馬鹿にしてくれ。
8bitマイコンでモータやらセンサやらの面倒を見つつ、
迷路脱出させてた。
出口が隅じゃなく、内部に有ると泣いたw
だから、それだと出口が内部に有ると駄目だし、ループしてる柱みたいな
場所が有ると永久ループ。
一応、自分が通った経路を記憶しておいてマッピングしながら移動する
のだが、タイヤのスリップとかセンサの誤検知とか有るので、信頼度の
重み付けしながらファジーにマッピングして行く。
汚部屋と言う名の迷路を掃除するロボット、ルンバも作れなさそうだな。
中国製ランダムウォークのパチ物に負けるぞ。
全セル分のワークと若干のキューが確保できればいいんだから
そんなにメモリ圧迫するってほどでもないような。
といっても対象フィールドの広さにもよるだろうが、
例の出題程度の広さだったら破綻の心配はまずしなくていいでしょう。
各セルごとにゴール、スタート、障害物、未踏地、
既に歩いた地(「来た方向」の保持兼用)の区別がつけばいいので
ワークは各セルごとに1バイト(最低4ビット)あれば十分足りるし。
でも深さ優先探索しか知らなかった(書いたことがなかった)ので
試しに解いてみた時にはちょっと手こずってしまった。
ちなみに件の例題では深さ優先探索でも実用時間内に解けてしまう。
これって結構ワナかもな、と思った。
(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))
#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(“\n”, a);
}
return 0;
}
まぁいいんじゃね
あえて言えば平凡すぎて面白みがなくてつまらん
int main(void){
char *s[4] = { ” ”,”Fizz”,”Buzz”,”FizzBuzz”};
int i;
for (i=1;1<=100;i++){
sprintf(s[0],””,i)
puts(s[(i%5==0)<<1+(i%3==0)]);
}
}
確認してないからわからんがかなり速の筈
sprintf部分を自分で書けばもっと速くなる
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],””,i);
puts(s[j]);
}
}
*2にしても多分同じオブジェクトが出るとは思うけどね。
↓結果
int main(void){
char *s[4] = { ” ¥n”,”Fizz¥n”,”Buzz¥n”,”FizzBuzz¥n”};
int i;
for (i=1;i<=100;i++)printf(s[(!(i%5)<<1)+!(i%3)],i);
}
int main(void){
char *s[4] = { ” ”,”Fizz”,”Buzz”,”FizzBuzz”};
int i;
for (i=1;1<=100;i++){
sprintf(s[0],””,i)
puts(s[(i%5==0)<<1+(i%3==0)]);
}
}
In function ‘main’:
Line 6: error: expected ‘;’ before ‘puts’
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],””,i);
puts(s[j]);
}
}
Output:
Segmentation fault
「どうだっ」みたいな人が会社にいて困った。
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はよくわからんのではずしたわ
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__
このプログラムが実用になった場合、標準出力以外のものに出すよう変更の必要があると思われるが、簡単にできるよう考慮されているか
倍数が3のみで5なしになったら?逆に両方残したまま7が増えたら?条件変わってもすぐに変更できるか
2.動作速度
十分速いかあるいは速度アップの必要が生じた場合、どこをいじればよいか?具体的に内部でどういう動作が 行われているかわかっているか
等をワシなら気にするな
最初黙っててできた後から上記のような質問してもすぐに対応したら、かなりできる奴だと思うわ
#include <stdio.h>
int disp(int num, int flag, int sizeofarray, char *s[] ) {
if (flag == sizeofarray-1)
printf(“\n”, num) ;
else
printf(“\n”,s[flag]) ;
return 0;
}
1 可変性
標準出力以外に出力する必要が生じたときは、disp()を修正する。
また、項目を追加する必要が生じたときは、変数の初期値を変える。
2 実行速度
可変性を重視すると、その分実行速度が落ちる。
がんばるもんじゃないったらスレ終わりじゃん。ここマ板だし。
こんな書き方もある、ってお遊びだよ?言わせんな恥ずかしいw
♪フィズバズフィズバズどどんがどん
♪三の倍数の時はフィズ
♪五の倍数の時はバズ
♪三と五の三と五の
♪公倍数ではフィズバズ印字
♪フィズバズ音頭でどどんがどん
そこのズブズブの日本人のあなた
自然にメロディが浮かんで来たでしょ
お手本プリーズ
haskellの内包表記で書けないか考えてみる
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);
}
}
}
これがどう問題なのか
誰か詳しく教えてくれ
913 :名無しさん@12周年 :sage :2011/07/02(土) 21:53:57.61 ID:vEYqWa5o0
>>871
アメリカで例えると
オバマ大統領がアルカイダにいる、ビンラディンの家族に資金援助していたという事で騒ぎになってる。
オバマがこっそり9.11実行犯の釈放嘆願書に署名
↓
オバマ「私ははめられた!!うっかり署名してしまった! 私は卑怯で残忍なテロリストを絶対許さない!!」
↓
オバマはイスラム原理主義の団体から多額の寄付を受け取っていた←追加分
↓
オバマがこっそりビンラディンの家族に毎年、計6250万円献金
↓
クリントンもこっそりビンラディンの家族に1000万円献金 ←ここが鳩山分★
↓
アメリカのメディアは全く報じず
ねーよwww
mes n+cnt
if n\15=0 : mes “FizzBuzz”: else {
if n\3=0 : mes “Fizz”
if n\5=0 : mes “Buzz”
}
loop
;未RUN
for n,1,100:s=””:if n\3=0{s=”Fizz”}if n\5=0{s+”Buzz”}if s=””{s=n}mes s:next
そんなかんたんにいくのね・・・
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();
}
}
}
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))
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(“\n”,i);
}else{
printf(“\n”);
}
flag = 0;
i ++;
}
}
完全独学+初心者+ゲームしか作った事ねぇ・・・
俺ダメダメかのぉ?orz
関数の型をうろ覚えで済ますな、ぐぐれ
ループの範囲が1から100までなんだから、素直に1と100をコードに入れられるならそうした方が見やすい
つーかループ変数の初期化とか更新とかはforを使えばもっと見やすいし、見やすければバグりにくい
最近のC/C++のforならスコープも付くしな
俺赤面。こんな時間に眠い目こするからいけなかったんだ(言い訳
もう寝る。お休み
それは正しい
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;
}
要求が変更されたら、コードを書き換えて対応するのは当たり前なんだから、ほどほどに書き換えが
やりやすくなってりゃいいのよ
実行効率どころか可読性まで大きく落として、まだ見ぬ要求変更の可能性に幅広く対応するのは無駄
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までね。
修正作業をすぐにやってくれ。締め切りは明日ね。
こういうところにもその人のスキルって出るよな
よって>>379は低スキルのバカグラマー
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”,” ”};
よかった。
実行効率どころか可読性まで大きく犠牲にして、
まだ見ぬ要求変更の可能性に幅広く対応したコードを書いておいて…
直接”FizzBuzz”とか書かず、割れた数から出力すれば楽だと思ったんだが、そうするとFizzBuzzGizzになっちゃうんだよなぁ
Fizz,Buzz,…の数だけフラグ用意して、立てたり立てなかったりしつつ、その後3本以上になったら小さいほうを折って…って面倒だわ
可変性が高いつもりでただ重いだけの無駄コードと化すしな
追加料金が1人月発生しますが良いですか?
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.
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
???
10個ごとに改行入れるってことだろ?見やすくするために
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” など)で。
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”
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
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”
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’;
とかネタで書いてたら、こういう発想のコードに実際関わる羽目に遭った時の記憶が蘇って嫌になった
三菱MDISに逝かされた時に、リアルでそんなのが3千行ぐらい延々と続く
ソースコードの改修を押し付けられたな…・。
もう二度と逝かない。
なんか理由あってそうやってんのかな?それとも池沼が作ったのか。
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’;
でいいだろうにな
マジで溢れかえってる
aho(int *crLine) {
switch(*crLine){
*crLine =__LINE__; return ; case __LINE__:;
*crLine =__LINE__; return ; case __LINE__:;
*crLine =__LINE__; return ; case __LINE__:;
}
}
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;
}
}
}
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
paizaの公式アカウントの背景に
fizzbuzz問題を解け。ただし、剰余は使わないこと
という画像があったんだが、剰余を使わないで解くことってできるの?
探してみたら、確かにあった
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(“\n”, i);
} else if (div5 < 5) {
div3 = 0;
puts(“Fizz”);
} else if (div3 < 3) {
div5 = 0;
puts(“Buzz”);
} else {
div3 = div5 = 0;
puts(“FizzBuzz”);
}
}
}
倍数が関わる問題を、剰余を使わずに解決しようyとするのは
基本的にアホではないのか
エラトステネスの篩 disってんの?
エラトステネスの篩って、普通足し算でやるものかい?
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>”);
}
配列だと足し算、リストだと割り算、かな。
剰余演算を使う人がすんごく多いのに逆にちょっと驚いたよ。
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(“”, 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(“\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;
}
}
}
(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);
for x in range(1,101):print[x,’Fizz’,’Buzz’,’FizzBuzz’][(x%3<1)+(x%5<1)*2]
夜勤の暇潰しに携帯からだからミスるかも
# 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
100.times do|i|
だったorz
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桁目からコメントの奴:大先輩オッスオッス。
(1 to: 15) collect: [:n | ((#(” ” Fizz) atWrap: n), (#(” ” ” ” Buzz) atWrap: n)) ifEmpty: [n]]
割って切り上げた値と割った値を比較
じゃなくて
割って切り捨てた値と割った値を比較
だわ。
逝ってくるorz
| 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’)
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)”)
}
}
}
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
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
echo ‘1 2 Fizz 4 Buzz 6 7 8 Fizz Buzz 11 12 13 14 FizzBuzz ・・・
FizzBuzzが限界です
黒人に輪姦されてる動画が流出したようですね。
鮮明だし最後は狂ったように泣きながらイキまくってる。
ちんこたった。
http://subject24.xyz/black025.jpg
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;
}
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
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.
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
GUXZSIC6RT
参考までに書いておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
8GEXJ
h https://twitter.com/d0iasm/status/1257645577321320450
h https://twitter.com/hikalium/status/1257641052145455104
https://twitter.com/5chan_nel (5ch newer account)