题目描述
将 1,2,…,9 共 9 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:C,试求出所有满足条件的三个三位数,若无解,输出 No!!!
。
输入格式
三个数,A,B,C。
输出格式
若干行,每行 3 个数字。按照每行第一个数字升序排列。
输入 #1
复制代码
1 2 3
输出 #1
复制代码
192 384 576
219 438 657
273 546 819
327 654 981
提示
保证 A<B<C
#include<bits/stdc++.h>
using namespace std ;
int num[10];
int main()
{
int a , b , c ;
cin >> a >> b >> c ;
if( a == 0 )
{
cout << "No!!!" ;
return 0 ;
}
for( int i = 1 ; i <= 9 ; i++)
{
num[i] = i ;
}
do{
int x , y , z ;
x = num[1]*100 + num[2]*10 + num[3] ;
y = num[4]*100 + num[5]*10 + num[6] ;
z = num[7]*100 + num[8]*10 + num[9] ;
if( b * x == a * y && z * b == c * y )
{
cout << x <<" "<< y <<" "<< z << endl ;
}
}
while(next_permutation(num+1,num+10));
return 0;
}
按照字典序排序 ,用next_permutation(num+1,num+10)找到下一个字典序并且继续模拟判断