我需要编写一个函数头,它返回一个数字的表示数量作为 3 个正平方的总和。
例如,将 3 表示为 3 个平方和的唯一表示是 3 = 1+1+1,因此如果 number = 3,则函数应返回 1。如果 n 为 27,则函数应返回 2,因为 27 有两种表示 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;
}
但我没有得到正确的输出。需要一些指导...如果有更好的方法,请建议..