自己写的sg实验自动计算代码C++
02/22641 浏览攻略
#include<bits/stdc++.h> using namespace std; struct node{ int val; vector<int> his;
}st;
int nxt[9]; queue<node> save;
void bfs(){ save=queue<node>(); save.push(st); while(save.size()){ node u=save.front(); save.pop(); if(u.val==0){ cout<<"操作顺序为:"<<endl; for(int i=0;i<u.his.size();i++)cout<<u.his[i]<<endl; return; } for(int i=1;i<=8;i++){ node v=u; v.val+=nxt[i]; v.his.push_back(nxt[i]); save.push(v); } }
} int main()
{ while(1){ cout<<"请输入初始数字:"<<endl; cin>>st.val; cout<<"请输入紫色四个数字:"<<endl; for(int i=1;i<=4;i++)cin>>nxt[i]; cout<<"请输入蓝色四个数字:"<<endl; for(int i=5;i<=8;i++)cin>>nxt[i],nxt[i]*=-1; cout<<"计算中..."<<endl; cout<<"计算完成。"<<endl; bfs(); } return 0;
}

