编程介的小学生 2017-08-30 06:37 采纳率: 20.5%
浏览 872
已采纳

Nullary Computer

Brian Huck has invented a new power saving
computer. With the current CMOSbased processors, a certain amount of power is lost each time a bit is changed from 0 to 1 or back. To avoid this problem, Brian��s new Nullary Core stores only zeros. All numbers are stored in nullary form, as shown on the right.
His initial 64-nit model has 26 registers, each of which may store up to 64 nits, and any attempt to store more than 64 nits will result in a run time error. There is also a flag register, which contains either a zero, or nothing. The instruction set is as follows:

Table 1NC Instruction Set
Instruction
Explanation and how to simulate in C
A
Add a zero to the value in register A (similarly for alluppercase letters).
a++;
a
First, empty the flag register. Then, if possible, remove a zero from register A, and place it in the flag register(similarly for all lowercase letters)
flag = 0; if(a>0) { flag=1; a--; }
(
If the flag register is empty, jump past the matching ).Otherwise, empty the flag register.
while(flag) { flag=0; ....
)
Jump to the matching (.
... }
Apart from instructions, no other characters than whitespace are allowed in a nullary program.

Sample programs

Brian has provided some programs to illustrate the elegance and simplicity of his computer.
Your task will be to write a sorting program for Brian��s Nullary Corebased Prototype Computer. The NCPC has limited memory, so your program must be no longer than 5432 instructions. Also, the running time of your program must be no more than 5 �� 106 steps for any possible input, where a step is considered to be the execution of one instruction.

b(b)a(Ba)
Move register A to register B (by first emptying register B, then repeatedly pulling a single zero from register A and placing it into B).
XXXa(GIa)i(g(FYg)y(Gy)f(Zb(z)z(i(YBi)y(Iy))f)Zb(zb)z(xz)i)x
Set the flag register if the number of zeros in register A is prime.

Important note: You must submit the nullary source code of this
program, and not some Java, C or C++ source code.

Input
The numbers to be sorted will be given in the first 24 registers A-X; the remaining two registers (Y and Z) will be empty.

Output

     The sorted numbers should be in registers A through X, in increasing order.

Register Y and Z should be empty.

Sample Input

A 0
B 000000000
C 000000
D 0000
E 00000000
F 0000000
G 0000
H 000000
I 000000000
J 000
K

L

M

N

O

P

Q

R

S
T
U
V
W
X 0
Y
Z

Sample Output

A
B
C
D
E
F
G
H
I
J
K

L

M

N 0
O 0
P 000
Q 0000
R 0000
S 000000
T 000000
U 0000000
V 00000000
W 000000000
X 000000000
Y
Z

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-09-14 15:49
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)