题目描述
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出“No!!!”。
//感谢黄小U饮品完善题意
输入输出格式
输入格式:
三个数,A B C。
输出格式:
若干行,每行3个数字。按照每行第一个数字升序排列。
输入输出样例
输入样例#1: 复制
1 2 3
输出样例#1: 复制
192 384 576
219 438 657
273 546 819
327 654 981
说明
保证A
#include<iostream>
using namespace std;
int fun(int a,int b,int c)
{
int x[10];
x[1]=a%10;
x[2]=a/10%10;
x[3]=a/100;
x[4]=b%10;
x[5]=b/10%10;
x[6]=b/100;
x[7]=c%10;
x[8]=c/10%10;
x[9]=c/100;
for(int i=1;i<=8;i++)
{
for(int j=i+1;j<=9;j++)
{
if(x[i]==x[j]||x[i]==0||x[j]==0)
return 0;
}
}
return 1;
}
int main()
{
double A,B,C,m=0;//int 类型不行 因为下面有A/C
cin>>A>>B>>C;
for(int i=123;i<=987*(A/C);i++)
{
if(C/A*i>=987)//注意范围
break;
if(fun(i,B/A*i,C/A*i))
{
m++;
cout<<i<<" "<<B/A*i<<" "<<C/A*i<<endl;
}
}
if(m==0)
cout<<"No!!!";
return 0;
}