自己写的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; }
28
12
8