题目要求
对于所给两组数{2,3,5,8}和{1,4,6,7},从一组数据中分别取数与另一组中的数配对,每个配对中的数字组成两位数,求平方和。例如
87^2 + 56^2 + 34^2 + 21^2 = 12302
78^2 + 65^2 + 43^2 + 12^2 = 12302
求出符合该特征的方案。
1.2解决方法
将一组数据存入一个数组内,对于一组数据进行排列组合,改变数组下标对应的数字,不断与另一组数据项匹配,完成每一种可能的匹配。然后按照题目要求求出平方和,判断是否符合
1.3程序
1.3.1程序
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int a[4]={2,3,5,8},b[4]={1,4,6,7};
int main()
{
int sum1 = 0, sum2 = 0, n;
do
{
int flag = false;
for(int i = 0; i < 4; i ++ )
{
sum1 += pow((a[i]*10 + b[i]), 2);
sum2 += pow((b[i]*10 + a[i]), 2);
if(sum1 == sum2)
flag = true;
}
if(flag) n ++;
} while(next_permutation(a, a+4));
printf("%d", n);
return 0;
}