一.题目分析:
模拟图灵机的运算过程,实现XN2
二.算法构造:
1.输入一个十进制数并将它转换为二进制数;
2.将这个二进制数转化为拓展二进制数;
3.进行XN2操作,此时还为拓展二进制数;
4.将这个二进位压缩成二进制表示;
5.将二进制数转化为十进制数并输出;
三.算法实现:
1.已知图灵机(XN*2)的指令如下:
0 0 → 0 0 R,
0 1 → 1 0 R,
1 0 → 0 1 R,
10 0 → 11 1 R,
11 0 → 0 1 STOP。
2.程序源代码:
#include<stdio.h>
#include<math.h>
#include<string.h>
int main( )
{
int n,m;
int j;
int one[100];
int two[100];
int three[100];
two[0]=0;
int len=0;
int i=1;
int k;
int t=0,p=0;
int nei=0;
int s=1;
int q=0;
int a,b,sum=0;
printf("1.请输入一个十进制数:\n ");
scanf("%d",&n);
//将十进制转化为二进制
while(n!=0)
{
m=n%2;
one[++t]=m;
n=n/2;
p++;