与并不是升级版的版本一样的解法…利用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 ; }