用C语言实现图灵机的XN x 2
对于任意给定的一台Turing机和任意给定的字符串w ( w不含空格),编程模拟此Turing机的运行过程,要求输出从开始运行起的每一步骤的结果。
输入需要计算的正整数,即可输出计算过程和计算结果;
全程序只运用了简单的数组,所以代码较为繁琐,不是最简化的,所以后续会继续加强更新。
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
int n,m,a[20],i=0,j,b[20],sum=0,x;
printf("请输入一个正整数:"); //将十进制转化为二进制
scanf("%d",&n);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
while(n)
{
a[i++]=n%2;
n/=2;
}
for(j=i,m=0;j>=0;j--)
{
b[m]=a[j];
m++;
}
b[i+1]=3;
printf("转化为二进制数(3用来做逗号的标记):\n");
for(j=0;j<20;j++)
{
printf("%d",b[j]);
}
printf("\n");
int f,c[20]; //将二进制数转化为图灵机可识别的编码
memset(c,0,sizeof(c));
for(int i=0,j=0;i<20;i++)
{
if(b[i]==0)
{
c[j]=0;
j++;
}
else if(b[i]==1)