@sensitive-cs
        
        2016-10-19T09:29:55.000000Z
        字数 550
        阅读 904
    如图所示,很好理解的问题。
用解方程的方法把四个格子的数分别表示出来就可以了。只是需要注意对于接的判断必须为整数且互不相等。具体见代码。
#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);}elseprintf("%d\n",-1);return 0;}