P1008 三连击
题目描述
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。
输入输出格式
输入格式:
木有输入
输出格式:
若干行,每行3个数字。按照每行第一个数字升序排列。
输入输出样例
输入样例#1:
输出样例#1:
192 384 576 * * * ... * * * (输出被和谐了)
题解:
#include<iostream> #include<algorithm> using namespace std; int i,j,a[15]; bool ans; int main() { for (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=true; for (j=1;j<=9;j++) if (a[j]!=j) ans=false;//若数字有重复,则pass; if (ans) cout<<i<<" "<<i*2<<" "<<i*3<<endl;//输出; } return 0; }