0

ここにいくつかのOAMコードがあり、すべての命令、それらがどのように動作するかを調べ、すべて疑似的に書き直しましたが、見つけるのに問題があります(数を数えることができます)ループはプログラムにあります。目が離せない気がしますし、C / Javaなどで千の階乗プログラムをやっていますが、ここでは見えません。

代替テキスト

したがって、== 0の場合はユーザーエントリを取り込み、[brz]をスキップする場合は[brp]をスキップします。abs値の値を否定するために使用されるneg

スキップルーチンは乗算と除算を実行し、その後にさらに条件を実行して、再度呼び出す必要があるかどうか、またはプログラムが完了したかどうかを確認します。

私は本質的にこのプログラムのループを見つける必要があります。私が言ったように、それはおそらく私を正面から見つめていますが、それは譲渡人の側で大まかに尋ねられた質問です。

明確にするために編集:プログラムは1つの数値の階乗を取りませんが、入力された各数値の階乗を乗算します。

したがって、3、-4、2、0を入力すると、結果は288になります。(3 * 2 * 1)(4 * 3 * 2 * 1)(2 * 1)

BRIの編集:

read: noop
      lda stdin
      brp return
      neg

return: bri read
4

1 に答える 1

1

まあ、それは単なる階乗ではありません..これはCバージョンになります:

    int result = 1, value;
    while(value = get_int()) {
next_loop:
        value = abs(c);
        do {
skip_loop:
            result *= value;
            value--;
        } while (value > 0);
    };
    printf("%d\n", result);

つまり、階乗の積であり、正確に2つのループがあります。

于 2010-10-19T02:07:28.753 に答える