「\ *でFizzBuzz」の編集履歴(バックアップ)一覧はこちら
「\ *でFizzBuzz」(2007/10/23 (火) 21:33:09) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
別の問題出すのも面倒なのでFizzBuzzはこれからも何度か使っていきます
>&italic()// \ と * を使ってFizzBuzz
>for(var i = 1; i < 101; i = i + 1) {
> if (i == i \ 15 * 15) {
> // 15の倍数( = 3と5の倍数)だったらFizzBuzzと表示
> Debug.message("FizzBuzz");
> } else if (i == i \ 3 * 3) {
> // 3の倍数だったらFizzと表示
> Debug.message("Fizz");
> } else if (i == i \ 5 * 5) {
> // 5の倍数だったらBuzzと表示
> Debug.message("Buzz");
> } else {
> // 15,3,5の倍数では無かったたらiを表示
> Debug.message(i);
> }
>}
ifの条件の部分が変わっています
なにをしているか分かるでしょうか?
\は割り算をして小数点以下を切り捨てます
&italic()*はただの掛け算です。
i\3で例を出します
|i|\ 3|* 3|真偽|
|1| 0 | 0 |偽 |
|2| 0 | 0 |偽 |
|3| 1 | 3 |真 |
|4| 1 | 3 |偽 |
|5| 1 | 3 |偽 |
|6| 2 | 6 |真 |
|7| 2 | 6 |偽 |
3で割り切れる時には、切り捨てられる小数点以下がないので3を再び掛けると元の数に戻ります
よって、i \ 3 * 3を元の数iと==で比べて同じだったら3の倍数です
5,15についても同様です
表示オプション
横に並べて表示:
変化行の前後のみ表示: