@sensitive-cs
2016-10-19T17:29:55.000000Z
字数 550
阅读 768
如图所示,很好理解的问题。
用解方程的方法把四个格子的数分别表示出来就可以了。只是需要注意对于接的判断必须为整数且互不相等。具体见代码。
#include <stdio.h>
int main()
{
int r1,r2,c1,c2,d1,d2;
int i = 0,flag = 1,j = 0;
int a[4];
scanf("%d%d",&r1,&r2);
scanf("%d%d",&c1,&c2);
scanf("%d%d",&d1,&d2);
a[0] = d1 - c2 + r1;
a[1] = r1 + c2 - d1;
a[2] = r2 + c1 - d1;
a[3] = r2 + d1 - c1;
for (i = 0;i < 4;i++)
{
if (a[i] % 2 != 0)
flag = 0;
if ((float)a[i] / 2 < 1 || (float)a[i] / 2 > 9)
flag = 0;
}
for (i = 0; i < 4;i++)
for (j = 0;j < 4;j++)
{
if (i == j)
continue;
if (a[i] == a[j])
flag = 0;
}
if (flag)
{
printf("%d %d\n",a[0] / 2,a[1] / 2);
printf("%d %d\n",a[2] / 2,a[3] / 2);
}
else
printf("%d\n",-1);
return 0;
}