15谜问题的判断
算法描述:
输入初始信息,将初始状态转换为整型,便于后面比较后累加。再根据公式
∑_(k=1)^16▒〖Less(k)+i+j〗
对所给的初始状态进行判断,如果所得结果是偶数,可以到达目标状态,如果为奇数则不能到达目标状态。
源程序:
#include <iostream>
#include <string>
using namespace std;
int main(){
char a[16][3];//存放初始输入的数据
int b[16];//转换为数字后的值
int i,sum=0,j;
int kong;
//初始化输入
for(i=0;i<16;i++)
cin>>a[i];
//把字符转化为整型
for(i=0;i<16;i++){
//#空格为16
if(a[i][0]=='#'){
b[i]=16;
kong=i;
}
//其他值为本身
else{
if(a[i][1]=='\0')
b[i]=a[i][0]-'0';
else
b[i]=(a[i][0]-'0')*10+a[i][1]-'0';
}
}
//找当前这个数后面比这个值大的个数
for(i=0;i<16;i++){
for(j=