三连击(洛谷-P1008)

题目描述

将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。

输入输出格式

输入格式:

木有输入

输出格式:

若干行,每行3个数字。按照每行第一个数字升序排列。

输入输出样例

输入样例#1: 

无 

输出样例#1: 

192 384 576
* * *
...
* * *
(输出被和谐了)

源代码  

#include<iostream>
using namespace std;
int main()
{
 	int i,j,k,m,sum;
 	int a[10];
    
 	for(i=123;i*3<=987;i++)//由于数字不重复,故区间范围从123-987
 	{
         for(m=1;m<10;m++) a[m]=0;//全部初始化为0
  		
         a[i/100]=1;//第一个三位数的百位
  	 a[i/10%10]=1;//第一个三位数的十位
  	 a[i%10]=1;//第一个三位数的个位
  
         j=i*2;//第二个三位数,与第一个三位数满足1:2的关系
         a[j/100]=1;//第二个三位数的百位
         a[j/10%10]=1;//第二个三位数的十位
         a[j%10]=1;//第二个三位数的个位
         
         k=i*3;//第三个三位数,与第一个、第二个三位数满足1:2:3的关系
         a[k/100]=1;//第三个三位数的百位
         a[k/10%10]=1;//第三个三位数的十位
         a[k%10]=1;//第三个三位数的个位
  
         for(sum=0,m=1;m<10;m++) sum=sum+a[m];//将存储三个数位的数组元素相加
  	 if(sum==9cout<<i<<" "<<j<<" "<<k<<endl;//若恰好为9,说明满足题设,输出
 	}
    return 0;
}

猜你喜欢

转载自blog.csdn.net/u011815404/article/details/79246785