[蓝桥杯][算法提高VIP]寻找三位数
时间限制: 1Sec 内存限制: 128MB 提交: 4 解决: 3
题目描述
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成
1:2:3的比例,试求出所有满足条件的三个三位数。
例如:三个三位数192,384,576满足以上条件。
输入
无输入文件
输出
输出每行有三个数,为满足题设三位数。各行为满足要求的不同解。
样例输入
无
样例输出
无
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int b[10],vis[10],ans;
void dfs(int cur ){
if( cur == 10 ){
if( ( b[1]*100+b[2]*10 +b[3] ) * 2 == b[4]*100+b[5]*10+b[6] && ( b[1]*100+b[2]*10 +b[3] ) *3 == b[7]*100+b[8]*10+b[9] ){
printf("%d %d %d\n",b[1]*100+b[2]*10 +b[3],b[4]*100+b[5]*10+b[6],b[7]*100+b[8]*10+b[9]) ;
}
return ;
}
for( int i=1;i<=9;i++){
if( !vis[i] ){
vis[i] = 1;
b[cur] = i;
dfs(cur+1);
vis[i] = 0;
}
}
}
int main(void){
dfs(1 );
return 0;
}