图中有10个小圆圈,其中6个已填入数字,这6个数字的特点是:相邻两数的平方和等于直径另一端相邻两数的平方和。如492+222=472+262,222+192=262+132。要求填入余下的4个空格(小于20的数),使其符合规律。
一行,十个数字,表示圆圈上从A处开始顺时针方向的十个位置的数值,其中0表示当前位置需要填充数值。
每行互不相同的四个数字,表示A、B、C、D四个空的填数方案。输出时各个数字之间有空格隔开;要求输出所有的方案,请按样例格式从小到大输出。
0 0 47 26 13 0 0 49 22 19
2 16 14 8
2 19 14 13
8 14 16 2
8 19 16 13
13 14 19 2
13 16 19 8
错误代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int A,B,C,D,a,b,c,d,e,f,g;
cin>>g>>g>>a>>b>>c>>g>>g>>d>>e>>f;
for(A=1; A<20; A++)
for(B=1; B<20; B++)
for(C=1; C<20; C++)
for(D=1; D<20; D++)
if(A*A+B*B==C*C+D*D&&A*A+f*f==C*C+c*c&&B*B+a*a==D*D+d*d&&A!=B&&B!=C&&C!=D&&D!=A&&B!=D&&A!=C)
cout<<A<<" "<<B<<" "<<C<<" "<<D<<" "<<endl;
return 0;
}