[蓝桥杯][算法提高VIP]寻找三位数

[蓝桥杯][算法提高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;
 }

猜你喜欢

转载自blog.csdn.net/S_999999/article/details/94600509