与并不是升级版的版本一样的解法…利用STL中的 next_permutation 全排列算法可轻松得到答案
注意判断的更改,详情见代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std ;
int main(){
int a , b , c ;
cin >> a >> b >> c ;
int arr[10] = {1,2,3,4,5,6,7,8,9} ;
bool check = false ;
do{
int num1 = arr[0] * 100 + arr[1] * 10 + arr[2] ;
int num2 = arr[3] * 100 + arr[4] * 10 + arr[5] ;
int num3 = arr[6] * 100 + arr[7] * 10 + arr[8] ;
if ( a * num2 == b * num1 && c * num2 == b * num3 ){
cout << num1 << " " << num2 << " " << num3 << endl ;
check = true ;
}
}while(next_permutation(arr , arr + 9)) ;
if ( !check ){
cout << "No!!!" << endl ;
}
return 0 ;
}