1.首战自己写:(巨蠢)80分
#include<iostream>
using namespace std;
int tc[10000][3], A_[10000], B_[10000], C_[10000];
int main()
{
int a, b, c, d, e, f, g, h, i = 0 , A, B, C, tmp1, tmp2,tmp3, k, judge[11] = { 0 }, p = 0, q = 0,x=0,cnt[10000],flag=0;
cin >> A >> B >> C;
for (int a = 1; a <= 9; a++)
for (int b = 1; b <= 9; b++)
for (int c = 1; c <= 9; c++)
for (int d = 1; d <= 9; d++)
for (int e = 1; e <= 9; e++)
for (int f = 1; f <= 9; f++)
{
if (a != b && a != c && a != d && a != e && a != f && b != c && b != d && b != e && b != f && c != d && c != e && c != f && d != e && d != f && e != f)
{
tmp1 = a * 100 + b * 10 + c;
tmp2 = d * 100 + e * 10 + f;
if (tmp1*1.0 / A == tmp2*1.0 / B)
{
judge[a] = 1;
judge[b] = 1;
judge[c] = 1;
judge[d] = 1;
judge[e] = 1;
judge[f] = 1;
for (k = 1; k <= 9; k++)
if (judge[k] == 0)
tc[i][q++] = k;
q = 0;
judge[a] = 0;
judge[b] = 0;
judge[c] = 0;
judge[d] = 0;
judge[e] = 0;
judge[f] = 0;
A_[i] = tmp1;
B_[i] = tmp2;
i++;
}
}
}
for (k = 0; k < i; k++)//对每一组A[],B[]找C[]
{
p = 0;
for (g = 0; g < 3; g++)
for (h = 0; h < 3; h++)
for (f = 0; f < 3; f++)
{
if (g != h && g != i && h != i)
{
tmp3 = 100 * tc[k][g] + 10 * tc[k][h] + tc[k][f];
if (tmp3*1.0 / C == A_[k]*1.0 / A)
{
C_[k] = tmp3;
p = 1;
}
}
}
if(p==1)
{
cnt[x++] = k;//把每一个有三个数的组储存下来
flag = 1;
}
}
if (flag == 0)
cout << "No!!!";
else
for (i = 0; i < x; i++)
printf("%d %d %d\n", A_[cnt[i]], B_[cnt[i]], C_[cnt[i]]);
}