题目描述
将1~9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数
输入输出格式
输入格式
木有输入
输出格式
若干行,每行3个数字。按照每行第一个数字升序排列
输入输出样例
输出样例
192 384 576
…
…
(输出被和谐了)
题解
枚举大法是真滴好!枚举大法是真滴妙!
枚举最小数,框出眼下的较合适上下限,然后对应找到三个数以及所用的所有数字,这些数字排序后当1~9九个数字依次排列时才算合法,输出结果即可。
代码
#include<bits/stdc++.h>
using namespace std;
int ans,a[88];
int main(){
for(int i=123;i<=329;i++){
a[1]=i%10,a[2]=i%100/10,a[3]=i/100;
a[4]=2*i%10,a[5]=2*i%100/10,a[6]=2*i/100;
a[7]=3*i%10,a[8]=3*i%100/10,a[9]=3*i/100;
sort(a+1,a+10),ans=1;
for(int j=1;j<=9;j++)if(a[j]!=j)ans=0;
if(ans) printf("%d %d %d\n",i,i*2,i*3);
}
return 0;
}
PS(正确输出结果)
192 384 576
219 438 657
273 546 819
327 654 981
写在最后,供参考