2.17.2017

2017.02.16 - 정수제곱근 판별하기

tryhelloworld level 1 algorithm questions  - 정수제곱근 판별하기

<JAVASCRIPT>

Question(출처 : http://tryhelloworld.co.kr)
nextSqaure함수는 정수 n을 매개변수로 입력받습니다.
n이 임의의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 임의의 정수 x의 제곱이 아니라면 'no'을 리턴하는 함수를 완성하세요.
예를들어 n이 121이라면 이는 정수 11의 제곱이므로 (11+1)의 제곱인 144를 리턴하고, 3이라면 'no'을 리턴하면 됩니다.


1. 실패
 if -> 제곱근 값
   var x=1;
 if (n%x==x) {
  result = "(x+1)*(x+1)";
}
  else if (n%x!=x){
    result = "no";
  }
  return result;
}

=================================================
<정답>
2. while문 사용하기 => 제곱근 값이 음수일 수 도 있으므로!!

 function nextSqaure(n){
  var result = 0;
  //함수를 완성하세요

  var x = 1;
  while(x*x<=n){
    if (n/x==x) {
      result = (x+1)*(x+1);
    }else{
      result = "no";
    }
    x++
  }
  return result;
}

// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log("결과 : " + nextSqaure(121));function nextSqaure(n){
  var result = 0;
  //함수를 완성하세요

  var x = 1;
  while(x*x<=n){
    if (n/x==x) {
      result = (x+1)*(x+1);
    }else{
      result = "no";
    }
    x++
  }
  return result;
}

// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log("결과 : " + nextSqaure(121));

3. 다른 사람의 풀이
function nextSqaure(n){
  var result = 0;
  //함수를 완성하세요

 function nextSqaure(n){
  //함수를 완성하세요
  switch(n % Math.sqrt(n)){
    case 0:
      return Math.pow(Math.sqrt(n) + 1, 2);
    default:
      return "no"
  }
}

// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log("결과 : " + nextSqaure(121));

댓글 없음:

댓글 쓰기