cijb-7724 / Fizz-Buzz

0 stars 1 forks source link

Brainfuck #6

Closed cijb-7724 closed 6 months ago

cijb-7724 commented 7 months ago

以前書いた剰余を計算するコードを解読して改変する


n 3 3
n 5 5でmod5
,>+++>+++<<

nm1 3 2 0 0
[
->>->[-]>[-]>[-]<<<

nm1 3 0 2 2
[->+>+<<]>>

nm1 3 2 2 0
[-<<+>>]< id=3

nm1 3 2 0 1
[[-]>+<]> bool化 id=4

nm1 3 2 0 0 0
>+<[[-]>-<]> 真理値反転 id=5

if id5=true id2 = id1
[<<<<
[->+>+<<]>>[-<<+>>]>>-
]id=5
<<<<<
]
>
[->-<]+>[[-]<->]<
>+<
[->-<

Yes 89 101 115
10×(9 10 11)

++++++++++
[>>>>
+++++[<++<++<++>>>-]
<+<<-<-
]
90 100 110 to 89 101 115
>-.>+.>+++++.

Reset
[-]<[-]<[-]<

]

>[-
No 78 111
11×(7 10)

++++++++++ +
[>>>
* 9 9
+++[<+++<+++>>-]
* 7 10
<+<--<-
]
77 110 to 78 111
>+.>+.

Reset
[-]<[-]<

]<
cijb-7724 commented 6 months ago

nを1つの割る数mで割り切れるか判定するために n m m x x xのメモリ空間が必要になる fizzbuzzをやるために,単純に n 3 3 0 0 0 n 5 5 0 0 0 n 15 15 0 0 0 だけ試す?

cijb-7724 commented 6 months ago

if else はできるけど 現状複数の else if に対応できていない (a) (b) (c) (d)という並びで以下をやりたい


if (a)
    code
else if (b)
    code
else if (c)
    code
else
    code
end
cijb-7724 commented 6 months ago

(a)=1 (b)=1 (c)=1 (d)=1 で初期化

(a); (b) (c) (d)
if (a)
    m r m r m r m r
    code
    l l l l
else if (b)
r
    m r m r m r
    code
    l l l
else if (c)
r
    m r m r
    code
    l l
else
r
    m r
    code
    l
end

とすればよい

cijb-7724 commented 6 months ago

最後の問題は1以上100以下の整数kがあるメモリにあるとき, それを表示する方法 事前に0123456789を作っておく 52 100 7

最大値の100の時は,5の倍数で引っかかるので,99まででよい

つまり,10で割った商が0出なけらば表示,0だったら表示しない

10で割った余りを表示

という流れで行ける

cijb-7724 commented 6 months ago

2桁以下の任意の数字を表示はできるようになった

cijb-7724 commented 6 months ago

1から100までループし,ちょうど100でループを抜けられるようになった.

cijb-7724 commented 6 months ago

else フラグを最初にデクリメントして可読性を高める

cijb-7724 commented 6 months ago

おわり