版权声明:Nicolas https://blog.csdn.net/qq_42835910/article/details/86623767
题目:http://lx.lanqiao.cn/problem.page?gpid=T189
全排列问题直接使用库函数next_permutation()就好了。
#include <iostream>
#include <algorithm>
using namespace std;
int main(int argc, char** argv) {
int a[9];
for(int i=0;i<9;i++) a[i]=i+1;
do{
int b[3]={};
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
b[i]=b[i]*10+a[i*3+j];
bool ok=true;
for(int i=1;i<3;i++){
if(b[i]%b[0]!=0 || b[i]/b[0]!=i+1){
ok=false;
break;
}
}
if(ok) cout<<b[0]<<" "<<b[1]<<" "<<b[2]<<endl;
} while( next_permutation( a, a+9));
return 0;
}