题目要求:双倍超立方数是指一个正整数可以正好被拆分为两种不同的a^3+b^3的方式,其中a,b均为整数且0a=b。对于任何一个指定的 int n, 返回所有的小于等于n的双倍超立方数的个数。
题目要求:双倍超立方数是指一个正整数可以正好被拆分为两种不同的a^3+b^3的方式,其中a,b均为整数且0<a<=b。对于任何一个指定的 int n, 返回所有的小于等于n的双倍超立方数的个数。
Definition
Class: TwiceSuperCubic
Method: count
Parameters: int
Returns: int
Method signature: int count(int n)
(be sure your method is public)
Constraints
- n取值范围为1到1,000,000,000(含)
Examples
0)
1
Returns: 0
1)
1729
Returns: 1
1729=1^3+12^3
1729=9^3+10^3
2)
475574
Returns: 27

Code
public static class TwiceSuperCubic
{
public static int count(int n)
{
int r = 0;
int f = -1;
if (n > 0 && n <= 1000000000)
{
for (int i = 1; i <= n; i++)
{
f = 0;
double sq = Math.Pow(i, 1f / 3);
for (int k = 1; k < sq; k++)
{
if (i > k * k * k)
{
int m = k;
for (; m < sq; m++)
{
if (i > m * m * m)
{
if (i == (m * m * m + k * k * k))
{
f++;
}
}
}
}
}
if (f > 1)
{
r++;
}
}
}
return r;
}
}