Java > AP-1 > dividesSelf (CodingBat Solution)

Problem:

We'll say that a positive int divides itself if every digit in the number divides into the number evenly. So for example 128 divides itself since 1, 2, and 8 all divide into 128 evenly. We'll say that 0 does not divide into anything evenly, so no number with a 0 digit divides itself. Note: use % to get the rightmost digit, and / to discard the rightmost digit.

dividesSelf(128) → true
dividesSelf(12) → true
dividesSelf(120) → false


Solution:

public boolean dividesSelf(int n) {
  int tmp = n;
  if (n%10 == 0)
    return false;
  while(n != 0)
  {
   if (tmp % (n%10) != 0)
     return false;
    n /= 10;
  }  
  
  
  return true;  
}

No comments:

Post a Comment