「Fizz」を含む日記 RSS

はてなキーワード: Fizzとは

2023-08-07

anond:20230807125459

ワイ:

#include<stdio.h>
int main(){
    for(int i = 1;i <= 100;i++){
        if(i%15 == 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;
}

Boi:何でそんな冗長なんですか

ワイ:考えるのが面倒くさいか

Boi:ここまとめられるでしょ

#include<stdio.h>
int main(){
    for(int i = 1;i <= 100;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;
}

Boi:ああっ

ワイ:ww

2023-07-02

プログラミングが出来ないIT系志望大学生

色々縁が合って学部名に情報が入る大学3―4年生の面倒を見てるんだけど,驚くほど英語が出来ない

一応授業である程度習ったらしいけどコーディング能力は低い.具体的にはFizzBuzz問題解けないくら

しかしそれ以上に問題があるのは英語基本的知識で,例えば次の2つのエラー文がどちらからも何が問題なのかわからない

NameError: name 'Fizz' is not defined

IndentationError: unexpected indent

defineもIndentも単語として知らない以前に,変数文字列リテラルやインデント理解できてないかエラーコードでググっても解決できないんだよね

同じ理由でDeepL等で訳しても無理.ただ,ChatGPTとかに説明してもらうとわかるらしい

5人中2人がこのレベルなんだけど,本人の希望通りの業界就職したら0から叩きこまれるんだろうなって思って子牛を見ている気分になったよ

2021-11-06

ドライブスルー薬局

ドライブスルー薬局がいい人

ドライブスルー薬局に求めること

ドライブスルー薬局問題になりそうなこと

解決策になりそうなもの

こんなことを書いて求めてるもの

なんか書いとけ

2020-11-18

愚かなプログラミング学習

テキスト説明理解できないとき学習者がすべきなのは自身理解を正すことであって、自己流の解釈を思い付くことではない。つまり

といったことをすべきなのであって、自分の腑に落ちるQiita記事とかを探すことは、全く理解に近づいていない。むしろ遠ざかっている。

というか、「明らかにからない用語などがあるのに、そこを回避して全体を理解しようとする」のは、プログラミングに限らず勉強法として根本的に間違っている。

かつて、どうしても「コメント」の意味理解できない新人がいた。

要するに彼は、プログラムの処理に関係の無い機構存在する意味理解できなかったらしい。

コメントは、コードでは表現できない実装意図ソースコード中に記述するときに用います

などと説明してみても、

...
// 15の倍数を先に判定しないと、たとえば15がFizzになってしまう
if (n % 15 == 0) {
    return "FizzBuzz";
} else if (n % 3 == 0) {
    return "Fizz";
...

みたいな簡単な例を示しても、一向に理解できない。

結局彼は、ネット解説記事をググった挙げ句に、

コメントは、処理をコメントアウトしてデバッグするための機構である

と言う結論に達したようだった。勿論、普通プログラマなら誰でも知ってるように、そういう使い方は良くない。

彼が本来すべきだったことは、まず

プログラミング言語のあらゆる機能が、プログラムの何らかの処理と対応している」

という誤ったメンタルモデルを正すことである。それを放棄して、自分にとって都合の良い出典不明情報鵜呑みにしたのが、そもそもの間違いである。

こういうことは、何も新人に限った話ではない。自分では一丁前のつもりのプログラマにも、ライブラリ等の全く見当違いな使い方をしてくる奴がよくいるのである

そういうのは、自分経験のある別の言語の○○という機能対応している、と勝手に思い込んでいたり、あるいは、実装とセマンティクスの区別ができず、インタフェースのような処理と直接関係ない機能理解できなかったりする。

要するに、不明点を正しく理解することを放棄して、自分に都合の良い解釈を得て早合点しているのである

そういう人はプログラマには向いていない。

2020-08-08

プログラマだけどコピペチンパンジープログラミングを仕込むのは無

コピペチンパンジー

コピペチンパンジーFizzBuzzを知らないしたぶん解けない。

この知らないというのが本当にヤバくて、普通プログラマとして飯を食ってたらFizzBuzzくらい知ってるじゃん?

いたことはなくてもなにかしらの技術記事で触れたりするじゃん?

知らない。

コピペチンパンジーなんだから人間よりググってるはずなのになぜ…?


コピペチンパンジー

0から100までの数字を表示する。3で割り切れるならFizzと表示する。5で割り切れるならBuzzと表示する。3と5で割り切れるならFizzBuzzと表示する。

と言われたらたぶん実装してくるし、それで動くからOKを出してもらえる。コピペできるから

でもこうだと実装できない。

1から999までの数字を表示する。5で割り切れるならDogと表示する。7で割り切れるならCatと表示する。5と7で割り切れるならBirdと表示する。

ググっても出てこなくてコピペできないから。

自分で考えて作ってみる」ことが、コピペチンパンジーは、マジで、できない。

コピペしてからキーボードを叩くので、猿が書くシェイクスピアより人間が書いたっぽいものに仕上がっているだけなのだ


人間に引き継ぐのはできる

プログラミングで何かを作る際には、当然だけど厄介で難しい部分があって、所謂自分しかメンテできない」状態コードがどうしても出来上がってくる。

それじゃ困るので、コメントもひときわ丁寧に書いているし引き継ぎ資料も作っている。

たまにマンツーマンで教える必要があったりもするが、ちょっとイケてるプログラマ相手ならばバトンを手渡すことができる。


コピペチンパンジーとPLと

最近別のチームに入ったのだが、PL曰くそれでは駄目らしい。

彼は「誰でもその箇所を引き継げる」ことを、努力目標じゃなくて達成すべき項目と考えている。

そう、コピペチンパンジーにも。

いや、無理でしょ…。

厄介で難しい箇所は、どう噛み砕いたところで、厄介で難しいから、厄介で難しいのである

突破するために必要なのは「知っているか、知らないか」ではなくて「考えられるか、考えられないか」なので、

いくら知識を残したところで、人間にはできるがコピペチンパンジーにはできない。

ましてや普通レベルプログラマでは手に負えない箇所を、どうしてFizzBuzzを知らないコピペチンパンジーが…。


いや、無理でしょ…

「いや、無理でしょ…」が今のPLには不誠実な態度に見えているようだ。自分しか知らない情報を独占している、と受け取られている。

他の人に教えているのはノーカンらしい。

コピペチンパンジー差別していると言われてしまえばそうかもしれないが、でも、コピペチンパンジーマジでコピペチンパンジーなのでマジでどうやって教えてもいや、無理でしょ…コピペチンパンジーから…。



最近コロナ事情転職が難しいと聞くが、それでも転職先を探そうと思う。

Qiitaで書くと炎上するのでここに書く。

2020-08-01

クソコード

function* fizzBazzGenerator() {
  for (let i = 1; ; i++) {
    if (i % 3 === 0){
      yield 'Fizz'
    } else if (i % 5 === 0) {
      yield 'Buzz'
    } else if (i % 15 === 0) {
      yield 'FizzBuzz'
    } else {
      yield i
    }
  }
}

2020-05-20

anond:20200519203414

いろんな人を見て思うことは、嘘つきはデバッグ作業プログラムの中にある間違いを訂正する作業)がうまくできなくて、結果的に達人プログラマーになれない。

昔、少しならコード書けます!って弟子入りしたいと言ってきた子(20代男性)にfizz buzz問題出したら、ウィキペディアからコピペしたように綺麗なコード提出してきて、カンニングたか訪ねたら絶対にしていないというから、じゃあってそのコードベースに応用問題だしたら見事に破綻してて、自分に嘘つける人間プログラマにはなれないなぁと思ったのを思い出したw

後日、すぐに破門したが彼は今頃なにしてるんだろう・・

2019-11-07

anond:20191107160021

三項演算子ネストは駄目だろうか?

パターンマッチングもどきが作れるのは悪くないと思うんだが。

say = n =>
  n % 3 == 0 ? "fizz" :
  n % 5 == 0 ? "buzz" :
                n;

2017-12-29

anond:20171229110515

Perl

use strict;
use warnings;
use feature 'say';

sub fz {
	my @pattern = @_;
	return sub { $pattern[(shift() - 1) % @pattern] };
}

my $fizz = fz("", "", "fizz");
my $buzz = fz("", "", "", "", "buzz");

foreach my $i (1..100) {
	say ($fizz-&gt;($i) . $buzz-&gt;($i) || $i);
}

https://ideone.com/mcc7kS

# use 5.xxxが使えない罠。

https://anond.hatelabo.jp/20171229110515

for(int i=1; i<= 100; i++){

if(i%0b1111==0){

System.out.println("FizzBuzz");

}else if(i%0b0101==0){

System.out.println("Buzz");

}else if(i%0b0011==0){

System.out.println("Fizz");

}else{

System.out.println(i);

}

}

System.err.println("何か文句でも?");

プログラミング問題

1から100の数字を出力する。

ただし数が3で割り切れるときFizz、5で割り切れるときBuzz、15で割り切れるときFizzBuzzを出力する。

条件:

ソースコード中に3、5を含んではならない。

(3、5以外の数字でも13、15、51というように3、5が含まれているものはアウト)

追記:

pythonで書いた回答例

https://gist.github.com/anonymous/3df71c8ab1ab639f512aa06fdd77e68d

というか2 + 1とか4+1とかすればいいだけだな。言われて気づいた。

2017-11-01

anond:20171029161516

FizzBuzz問題を読み替える

具体的に1から15までの例で考えてみる。

集合で考えるとして、集合Aを3の倍数、集合Bを5の倍数とする。

U = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }

A = { 3, 6, 9, 12, 15 }

B = { 5, 10, 15 }

A∩B = { 15 }

¬(A∪B) = { 1, 2, 4, 7, 8, 11, 13, 14 }

ベン図は次のようになる。

+-----------U----------+
|                      |
| +---A------+         |
| | 3 6      |         |
| |  9 12 +--+---B---+ |
| |       |15|       | |
| +-------+--+ 5 10  | |
|         |          | |
|         +----------+ |
|                      |
| 1 2 4 7 8 11 13 14   |
+----------------------+

ド・モルガン定理より

¬(A∪B) = ¬A∩¬B

よって、FizzBuzz問題は次のように読み替えられる。

  • (A∩¬B)3の倍数、かつ、5の倍数でなければ "Fizz"を出力
  • (¬A∩B)3の倍数でなく、かつ、5の倍数ならば "Buzz"を出力
  • (A∩B)3の倍数、かつ、5の倍数ならば "FizzBuzz"を出力
  • (¬A∩¬B)3の倍数でなく、かつ、5の倍数でもなければ元の数字を出力

表にしてみる。

5の倍数5の倍数ではない
3の倍数"FizzBuzz""Fizz"
3の倍数ではない"Buzz"元の数字

コード検討

よくあるコードスタイルWikipediaから借りることにして、使用する言語をCとする。

https://ja.wikipedia.org/wiki/Fizz_Buzz

さて、元の論理を愚直に実装するとどうなるだろうか。

#include &lt;stdio.h&gt;

int main(void) {
    int i;
    for (i = 1; i &lt;= 100; i++) {
        if (i % 3 == 0 &amp;amp;&amp;amp; i % 5 == 0) {
            printf("FizzBuzz&#92;n");
        }
        if (i % 3 == 0 &amp;amp;&amp;amp; i % 5 != 0) {
            printf("Fizz&#92;n");
        }
        if (i % 3 != 0 &amp;amp;&amp;amp; i % 5 == 0) {
            printf("Buzz&#92;n");
        }
        if (i % 3 != 0 &amp;amp;&amp;amp; i % 5 != 0) {
            printf("%d&#92;n", i);
        }
    }
    return 0;
}

ここで、元増田が発想したような「3の倍数の後に5の倍数を判定させて"Fizz"と"Buzz"を連続出力すれば"FizzBuzz"の段は要らないんじゃね?」作戦を発動する。

"FizzBuzz"の判定をごっそり削り、"Fizz"と"Buzz"の条件が同時に起こることを考慮する。

forの終わりに改行するようにする。

コードを追って、元の論理と合ってるかを確認しておく。

#include &lt;stdio.h&gt;

int main(void) {
    int i;
    for (i = 1; i &lt;= 100; i++) {
        if (i % 3 == 0) {
            printf("Fizz");
        }
        if (i % 5 == 0) {
            printf("Buzz");
        }
        if (i % 3 != 0 &amp;amp;&amp;amp; i % 5 != 0) {
            printf("%d", i);
        }
        printf("&#92;n");
    }
    return 0;
}

2017-10-29

anond:20171029133009

ベン図描くと分かりやすいけど、4つの集合に分ける必要があって

A3の倍数Fizz
B5の倍数Buzz
A∩B15の倍数FizzBuzz
¬(A∪B)それ以外数字

A,B,A∩Bの3つと、それ以外で分ける方が分かりやすいから。

anond:20171029134515

ああごめんごめん

fizz,buzzでそれぞれ改行入ってて改行が重複すんじゃないのみたいなよくわからんことを考えていた

anond:20171029133742

伝わってなかったかな?

15の剰余が0の時→FizzBuzz+改行

3の剰余が0の時→Fizz+改行

5の剰余が0の時→Buzz+改行

となってるのが

3の剰余が0の時→Fizz

5の剰余が0の時→Buzz

次のループに行く前に改行

としたほうがいいんじゃね?と思うということなんですが。

FizzBuzz問題

いくつかプログラム参考書というか基本書を読んでみたんだけど大体あるFizzBuzz問題に疑問がある。

記憶にある限り全ての本が15の剰余が0の時FizzBuzz、3の剰余が0の時Fizz、5の剰余が0の時にBuzzと表示する処理をしているけどこれ15の処理いるの?

3の剰余が0でFizz、5の剰余が0でBuzzを加えていけば自動的に15の剰余が0の時にFizzBuzzになって表示終わったら改行なりなんなりでいいと思うんだよね。謎。

素人が思ってるだけなのでちゃんとした理由があるなら教えてください。

2017-08-01

FizzBuzz問題

プログラミング問題だけど高校一年生までの数学の考え方で解決できる。嬉しい。

FizzBuzz問題とは

1 から順に数を数えていく。但し、その数が 3 で割り切れるならば数字の代わりに Fizz と、5 で割り切れるなら Buzz と言うゲーム。3 でも 5 でも割り切れる場合は、FizzBuzz の順に言う。

はてなキーワードより引用

これをプログラミングするのがFizzBuzz問題です。

具体化

1から15までの例を考えてみる。

入力出力
11
22
3Fizz
44
5Buzz
6Fizz
77
88
9Fizz
10Buzz
1111
12Fizz
1313
1414
15FizzBuzz

一般

入力と出力の関係を考えると、入力が定まれば、出力も一意に定まることが分かる。つまり入力と出力の関係関数にすることができる。この関数f(x)とする。

関数f(x)は、入力が3の倍数なら"Fizz"、5の倍数なら"Buzz"、3と5の公倍数なら"FizzBuzz"、その他は入力値を返す。

公倍数は最小公倍数を整数倍した値なので、ある値が公倍数であるかどうか判断するには、最小公倍数で割ってみて、割り切れるかを調べることにする。

3と5の最小公倍数は15なので、15で試しに割ってみて、割り切れるかどうかを見る。

3と5の倍数の判定も、それぞれ、3と5で割り切れるかどうかを見る。

コード

使う言語Perlである

Perlは、上から順に命令を実行する命令言語なので、3や5の倍数の判定の前に、15の倍数の判定を持ってくる。

逆にすると、15の倍数は3の倍数であり、5の倍数でもあるため、"FizzBuzz"が必要な所が"Fizz"や"Buzz"だけになってしまう。

use 5.024;
use warnings;

sub f {
	my ($x) = @_;

	if (($x % 15) == 0) {
		return "FizzBuzz";
	}
	if (($x % 5) == 0) {
		return "Buzz";
	}
	if (($x % 3) == 0) {
		return "Fizz";
	}

	return $x;
}

foreach my $i (1..100) {
	say f($i);
}

2016-01-12

厨ニFizzBuzzを書いた

2021/04/25用

%:include <stdio.h>
%:include <stdlib.h>
%:define 三つ子と五つ子の協奏曲 main
%:define ☯ ;
%:define 環 while
%:define 異名 typedef
%:define 終焉 101
%:define 伝承(詩) printf(_Generic((詩), int: "%d\n", char *: "%s\n"), 詩)
%:define 純白を漆黒漆黒を純白に(色) (色 = 終焉 - 色)
%:define 終わりは、斯く示された。 return 0

異名 int 無限整数幻想を維持せぬ整数異名 char 世界言葉を扱うには不十分な箱 ☯
異名 void 虚無 ☯

無限整数幻想を維持せぬ整数 破滅の刻 = 終焉 ☯

虚無
三つ子と五つ子の協奏曲(栞, 慈悲深き終身独裁者の注文)
	無限整数幻想を維持せぬ整数   栞 ☯
	世界言葉を扱うには不十分な箱 **慈悲深き終身独裁者の注文 ☯
{
	環 (0 <-- 破滅の刻
		&& 純白を漆黒漆黒を純白に(破滅の刻)
		&& ((破滅の刻 % 3) * (破滅の刻 % 5)
			? 伝承(破滅の刻)
			: 伝承(破滅の刻 % 15 ? 破滅の刻 % 5 ? "Fizz" : "Buzz" :"FizzBuzz"))
		&& 純白を漆黒漆黒を純白に(破滅の刻)) ☯
	終わりは、斯く示された。 ☯
}

2014-12-17

コードを書かせる

プログラマの実力図るのに、コードを書かせる流れが最近あってそれはとてもいいことだと思うんです。

ただ、すごいぼんやりしてるなと思って違和感を感じますコードを書かせるって具体的に何ですかね?Fizz Buzzみたいなのですかね。

しかプログラマコード書けないのは論外だと思いますけど、そんなの書かせてもやっぱり実力はわからないと思います

話をweb系に限らせて書くと、そもそもそういうアルゴリズム必要コードを書く機会ってそんなになかったりしませんか?

開発環境作ることから始まって、DBも使うし、当然フロントの知識も必須だし、他にもチームで仕事するための技術だったり

結構横断的に覚えることが多いわけで、実はコードを書くのはほんの一部だったりするんです。

心配なのはコード書くのは得意だけどサーバフロントも全くできなくて、最終的なプロダクトは作りきれないって人が評価されて

アルゴリズムなのは苦手だけど、きちんとプロダクトは作って仕上げて納品までできるって人が評価されなくなることです。

実際働きだしたら後者評価されるに決まってますが、採用試験後者採用を逃すことはありうるのかなと思っています

1時間か2時間面接の間にそういうコード書かせるよりは、面接前に何か作ったもの提出させる方がいいんじゃないですかね。

簡単なサイトだったりアプリも作りきれない人って案外多いし、そこで足きりしちゃっていいと思います

でもそれだと応募の敷居が高すぎて、人が来なかったりするんでしょうか。難しいところですね。

2013-06-18

['fizzbuzz' if i%15==0 else ('buzz' if i%5==0 else ('fizz' if i%3==0 else str(i))) for i in range(101)[1:]]

 
ログイン ユーザー登録
ようこそ ゲスト さん