COW,174个字节

oomMOOMMMmoOmoOmoOMMMmOomOoMoOMMMmoOmoOmoOMMMmOoMOOmoO

MOomoOMoOmOoMOOmoOmoomoOMOOmOoMoOmoOMOomoomOomOoMOOmOo

moomoOMOomoomoOmoOMOOmOomOomOomOoOOMOOOMOomOOmoomOomOo

mOomOomOomoo

这段代码只是我自己的一部分-它实现了我从Brainfuck移植的模数算法。 其余的代码是我自己的。但是,由于我没有编写模数算法,因此我还没有真正研究过它的工作原理,也无法记录该部分代码。取而代之的是,我将给出我通常的细目,然后是代码为何起作用的更深入的解释。

代码细目

oom ;Read input into [0].

MOO ;Loop while [0]. We never change [0], so the program only terminates forcibly after a print.

MMMmoOmoOmoOMMMmOomOo ; Copy [0] to [3] and navigate to [1].

MoOMMMmoOmoOmoOMMM ; Increment [1], and copy it to [4]

mOo ; Navigate back to [3].

MOO ; Modulus algorithm. Direct port of brainfuck algorithm.

moOMOomoOMoOmOo

MOO

moO

moo

moO

MOO

mOoMoOmoOMOo

moo

mOomOo

MOO

mOo

moo

moOMOo

moo ; End modulus algorithm.

moOmoO ; Navigate to [5]. This contains our modulus.

MOO ; Only perform these operations if [5] is non-zero -- i.e. [0] % [1] != 0

mOomOomOomOoOOMOOOMOomOO ; Navigate to [1], print its contents, then error out.

moo ; End condition

mOomOomOomOomOo ; Since we're still running, [0] % [1] == 0, so navigate back to [0] and try again.

moo ;End main loop.

说明

代码首先将整数读取为[0]。主循环的每次迭代(第2到26行)递增[1],然后将所有必要内容复制到模数算法中,该算法将其结果吐出到[5]中。如果[5]包含任何值,则[1]是我们需要打印的数字。我们打印它,然后强制退出程序。

由于COW是一个疯子派生类,它的功能与疯子的操作相对类似-无限条带,您可以向左或向右移动,增大或减小以及“循环”,而当前磁带值为非零。除了动脑筋,COW还具有一些有用的功能。

(0) moo -- Equivalent to ]

(1) mOo -- Equivalent to <

(2) moO -- Equivalent to >

(3) mOO -- No equivalent. Evaluate current tape value as instruction from this list.

(4) Moo -- If tape is 0, equivalent to ,; if tape is non-zero, equivalent to .

(5) MOo -- Equivalent to -

(6) MoO -- Equivalent to +

(7) MOO -- Equivalent to [

(8) OOO -- No equivalent. Set tape (positive or negative) to 0

(9) MMM -- No equivalent. If register is empty, copy tape to register. If register is non-empty, paste register to tape and clear register.

(10) OOM -- No equivalent. Print an integer from tape to STDOUT

(11) oom -- No equivalent. Read an integer from STDIN and store it on tape

这里真正的兴趣点是指令3,mOO...。解释器读取当前的磁带值,并基于该磁带值执行指令。如果该值小于0,大于11或等于3,则解释器终止程序。找到非除数后,可以将其用作主循环(和整个程序)的快速退出。我们要做的就是打印数字,用[清除[1](用OOO),用减为-1 MOo,然后执行指令-1,通过mOO该指令结束程序。

该程序的磁带本身具有以下功能:

[0] -- Read-in integer from STDIN.

[1] -- Current divisor to test

[2] -- Placeholder for modulus algorithm

[3] -- Temporary copy of [0] for use for modulus algorithm

[4] -- Temporary copy of [1] for use for modulus algorithm

[5] -- Placeholder for modulus algorithm. Location of remainder at end of loop.

[6] -- Placeholder for modulus algorithm

[7] -- Placeholder for modulus algorithm

运算结束后,模数算法自然会清除[2],[3],[6]和[7]。[4]的内容被第4行上的寄存器粘贴覆盖,并且当[0]被[1]整除时,[5]为零,因此我们不必清除它。如果[5]不为零,则我们在第23行强制退出,因此我们不必担心。

python找出最小数_找出不除N的最小数相关推荐

  1. arcgis批量出图python代码_【GIS进阶】ArcGIS批量出图_定义出图

    今天的文章是浩哥投稿!!! 下图是我欢呼雀跃的样子~~~~~ 本文亮点: 所有步骤都是用ArcGIS中各种工具和软件操作组合,未使用Arcpy与Python等需要使用代码的工具! 这次的这个批量出图又 ...

  2. java开发找你妹_找你妹java版下载-找你妹java版2020最新版下载v1.1.1_MDPDA手机网

    找你妹java版是一款超级好玩的找茬冒险类手机游戏,充满趣味的卡通画风,超多不同游戏关卡,难度可以让玩家来自己选择,很考验玩家的观察能力,丰厚的奖励,玩家们每天登录到游戏当中就可以直接获得,还有超级多 ...

  3. Java找对象笑话_找对象相亲的笑话7则,爱情笑话

    1.选 择姑娘和小伙子经婚姻介绍所安排,在公园里见了面.两人谈了没一会儿,姑娘便起身告 辞.小伙子对姑娘很中意,见她要走,心里很急,连忙追问原因. 姑娘:"你虽然相貌堂堂,可是腹中空空.&q ...

  4. python爬取工资_找工作如何和HR谈薪资,python教你爬取行业标准工资

    找工作不可避免的要涉及到薪酬问题,如何沟通才能最大程度达到自己的预期? 同样level的公司,有人年薪十几万,有的人插了个草标就把自己卖了,面试中被问到具体的薪资数目.常常会陷入要价太高(或者太低)的 ...

  5. arcgis批量出图python代码_ArcGIS批量出图_常规出图

    本文亮点:所有步骤都是用ArcGIS中各种工具和软件操作组合,未使用Arcpy与Python等需要使用代码的工具! 不知道身处国土行业的你是否经常因某个项目需要大量出图而苦恼,今天我就和大家说一下如何 ...

  6. python a股行情_老虎出API了,包括所有A股行情。

    传奇 - 初生牛犊不怕虎,但终究会被虎吃掉. 赞同来自: 此次老虎宣布"升级"成为非披露证券经纪商,是相对于全披露证券经纪商而言,后者是指这些经纪商必须向客户告知,以老虎证券&qu ...

  7. python如何计算字典平均值_算出字典中数值的平均值

    如果需要"实时"更新您的平均值(尽管可能是用核武器杀死苍蝇,而不是您真正需要的),则需要创建一个从内置的dict类型继承并用averages方法扩展它的自定义类:import pp ...

  8. python梦幻西游鼠标偏移_找个梦幻西游防鼠标偏移漂移防越界的按键精灵子程序...

    Sub 鼠标移动 (i,j) MBX=i:MBY=j If MBX > 60 and MBX < 550 and MBY > 100 and MBY < 450 MoveTo ...

  9. 面试官问你想找什么工作_找工作时如何面试面试官

    面试官问你想找什么工作 在技​​术面试中要问的十二个问题 (Twelve questions to ask at tech interviews) I've just come off six wee ...

最新文章

  1. 6.3 Spring Boot集成mongodb开发
  2. Node.js 安装报错提示“The error code is 2503“问题解决方法
  3. pg数据库开启远程连接_Postgresql开启远程访问的步骤全纪录
  4. 「递归」的正确打开方式,看不懂你打我~
  5. 【渗透测试】cookie注入笔记
  6. 软考信息安全工程师学习笔记三(1.3 信息安全管理基础)
  7. 60-50-010-API-Kafka producer拦截器(interceptor)
  8. jsp标签 meta的解释
  9. 谷歌招聘新职员的五大标准
  10. 旧版sai笔刷_最详细的SAI笔刷设置教程,非常全面详细!
  11. 哈工大同义词词林扩展版-资源分享
  12. Servlet中request.getParameter和getParameterValues getParameterNames三者区别
  13. linux添加静态ipv6路由,请问如何在CentOS7上配置已经静态路由好的IPv6地址块?
  14. 愚人节整蛊,网页倾斜代码
  15. 蹩脚的程序员们,我们来谈谈你的未来!
  16. 视频剪辑,就上这5个网站找素材,免费可商用。
  17. 兆骑科创创新创业服务平台,海内外高层次人才引进,活动赛事
  18. PC浏览器添加背景音乐 VS 手机浏览器添加背景音乐
  19. 医院信息管理系统源码 HIS系统源码
  20. 创建三维头像只需一张自拍,AI 技术即将开启 3D 社交时代?

热门文章

  1. VC++ 进度条更新方案
  2. 河南城镇化争植“智慧”基因
  3. html5实例-闪烁的星星
  4. Codeforces Round #356 (Div. 1) D. Bear and Chase 暴力
  5. Codeforces Gym 100187D D. Holidays 排列组合
  6. APUE 线程的分离状态
  7. 蓝桥杯“基础练习:查找整数
  8. python 发布自定义模块(图文诠释)
  9. access在sql中横向求和_如何在Access查询中增加总和、平均查询列
  10. C程序设计语言现代方法15:编写大型程序