-2

I tried my best to return int number as a perfect cube without declaring it. I don't know what I'm doing wrong. The assignment: 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

   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
Nar
  • 11
  • 1

1 Answers1

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

So a is now number/9

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

And here you check whether number is equal to (number*number*number)/729. How is that supposed to mean anything?

You really need to figure out your algorithm before you start to code a single line.

FredK
  • 4,036
  • 1
  • 6
  • 11