2017-02-27 123 views
-3

我尽我所能将int数作为一个完美的立方体返回而没有声明它。我不知道我做错了什么。赋值:TODO:如果number是一个完美的立方体,则返回true,否则返回false。你可以假设值数的 是注1至1000000为什么它会一直返回false?

之间:一个完美的立方体是一个数字,其立方根为整数

static boolean Q1(int number) { 
    int a = number/9; 


    if(number==(a*a*a)) 
    { 
     return true; 

    } else { 
     return false; 
    } 
    // TODO: Return true if number is a perfect cube, false otherwise. You can assume the value 
    //  of number is between 1 and 1000000 
    // 
    // Note: a perfect cube is a number whose cube root is an integer 




} 






ERROR: 

-- Q1 -- 
Incorrect on input: 8 
Expected output : true 
Your output  : false 
+2

'int s = number/3;'正在做整数除法例如'1/2 == 0'尝试'double s = number/3.0' –

+0

不起作用。 – Nar

+0

指定的所谓重复问题与我的问题无关。 – Nar

回答

0
int s = number/3; 
int a = s/3; 

因此,一个现在是数/ 9

if(number==(a*a*a)) 

在这里你检查数字是否等于(number*number*number)/729。 这应该是什么意思?

在开始编写单行代码之前,您确实需要弄清楚您的算法。