题目描述:
对于XN*2图灵机进行模拟,任意给定的十进制数,转换为收缩扩展二进制的编码,再编程模拟此Turing机的运行过程,要求输出从开始运行起的每一步骤的结果。用C或C++或Java或Python语言实现程序解决问题。
要求:1. 程序风格良好(使用自定义注释模板);
2. 提供友好的输入输出,并进行输入数据的正确性验证。
算法分析:
1. 将十进制数转换为二进制数;
2. 将二进制数转换为收缩扩展二进制的编码;
3. 根据当前的内态和输入执行XN*2图灵机的指令;
4. 将结果的二进制编码转换为二进制数;
5. 将二进制数转换为十进制数,实现乘2运算功能。
概要设计:
算法流程图如下:
测试:
输入的十进制数 |
正确的二进制编码 |
输出的二进制编码 |
正确的运算结果 |
输出的运算结果 |
0 |
0011000 |
0011000 |
0 |
0 |
3 |
0101011000 |
0101011000 |
6 |
6 |
18 |
0100010011000 |
0100010011000 |
36 |
36 |