洛谷 p1008三连击

时间:2023-03-09 08:25:59
洛谷 p1008三连击

洛谷 p1008三连击

题目背景

本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。

题目描述

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

输入格式

木有输入

输出格式

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

输入输出样例

输入 #1

输出 #1

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

思路: 暴力模拟求解。代码如下:

#include <bits/stdc++.h>
#define LL long long
using namespace std;
bool judge(int x,int y,int z){
int d[9];
d[0]=x/100;
d[1]=x/10%10;
d[2]=x%10;
d[3]=y/100;
d[4]=y/10%10;
d[5]=y%10;
d[6]=z/100;
d[7]=z/10%10;
d[8]=z%10;
sort(d,d+9);
for(int i=0;i<9;i++){
if(d[i]==i+1)continue;
else {
x=-1;
break;
}
}
if(x==-1){
return false;
}
else{
return true;
}
}
int main()
{
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
for(int k=1;k<=9;k++){
int x=i*100+j*10+k;
int y=x*2,z=x*3;
if(judge(x,y,z))printf("%d %d %d\n",x,y,z);
}
}
}
return 0;
}