題目描述
將1,2,…,9共9個數分成三組,分別組成三個三位數,且使這三個三位數的比例是A:B:C,試求出所有滿足條件的三個三位數,若無解,輸出“No!!!”。
輸入輸出格式
輸入格式:
三個數,A B C。
輸出格式:
若干行,每行3個數字。按照每行第一個數字升序排列。
輸入輸出樣例
輸入樣例#1:
1 2 3
輸出樣例#1:
192 384 576
219 438 657
273 546 819
327 654 981
————————————————
思路:可以直接枚舉第一個數,然後算出後面兩個數,且第一個數無需枚舉所有三位數。
#include<bits/stdc++.h>
using namespace std;
int a,b,c,flag=0;
int j,k;
int main()
{
scanf("%d%d%d",&a,&b,&c);
for(int i=(123/a+min(123%a,1))*a;i<=987/a*a;i+=a)
{
j=i/a*b;
k=i/a*c;
if(j >= 100 && j <= 999 && k >= 100 && k <= 999)
{
int d[10],sum=0,xx=1;
d[1]=i/100;
d[2]=i/10%10;
d[3]=i%10;
d[4]=j/100;
d[5]=j/10%10;
d[6]=j%10;
d[7]=k/100;
d[8]=k/10%10;
d[9]=k%10;
for(int m=1;m<=9;m++)
{
sum += d[m];
xx *= d[m];
}
if(sum == 45 && xx == 362880)
{
flag = 1;
printf("%d %d %d\n",i,j,k);
}
}
}
if(flag == 0)printf("No!!!");
return 0;
}