首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OAM中的阶乘

OAM中的阶乘
EN

Stack Overflow用户
提问于 2010-10-19 09:46:49
回答 1查看 1.6K关注 0票数 0

我这里有一些OAM代码,我已经查找了所有的指令,它们做了什么,它们是如何运作的,我已经重新编写了所有的伪代码,但我在定位(所以我可以计算出程序中有多少)循环时遇到了问题。我觉得它应该直视我的眼睛,我已经用C/Java等语言编写了上千个factorial程序。但我在这里看不到。

因此,它接受用户输入,如果==为0,则中断为done brz,如果>0,则中断以跳过brp neg,用于取反abs值的值

跳过例程执行乘法和减法,后面跟着更多的条件,看看是否需要再次调用它,或者程序是否已经完成。

我需要找到这个程序中的循环。就像我说的,它可能正盯着我的脸,但对于分配者来说,这是一个随意提出的问题。

编辑以澄清:程序不接受一个数字的阶乘,而是将输入的每个数字的阶乘相乘。

所以我可以加上3,-4,2,0,结果是288。(3*2*1)(4*3*2*1)(2*1)

编辑BRI:

代码语言:javascript
复制
read: noop
      lda stdin
      brp return
      neg

return: bri read
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-19 10:07:29

嗯,这不仅仅是阶乘..这将是C版本:

代码语言:javascript
复制
    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);

所以它是阶乘的乘积,正好有两个循环。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3964805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档