数値の表現の数を 3 つの正の二乗の合計として返す関数 head を作成する必要があります。
たとえば、3 平方の合計としての 3 の唯一の表現は 3 = 1+1+1 であるため、数値 = 3 の場合、関数は 1 を返す必要があります。n が 27 の場合、27 には 2 つの表現があるため、関数は 2 を返す必要があります 27 = 25 + 1 +1 または 9+9+9。
これは私が試したことです:
#include <iostream>
#include <cmath>
using namespace std;
int numRep(int num);
int main()
{
int count = numRep(27);
cout << count;
return 0;
}
int numRep(int num)
{
int count = 0, sum = 0;
int a =1, b=1, c=1;
while(a*a <= num -2)
{
b = 1;
while(b*b <= num -2)
{
c =1;
while(c*c <= num -2)
{
sum = a*a + b*b + c*c;
if (sum == num) count++;
c++;
}
b++;
}
a++;
}
return count/3;
}
しかし、正しい出力が得られません。いくつかのガイダンスが必要です...より良い方法がある場合は、提案してください..