DAY . 復習する

20703 ワード

アルゴリズム2
I/O例
let output = computeWhenDouble(7);
console.log(output); // --> 11

output = computeWhenDouble(10);
console.log(output); // --> 8
function computeWhenDouble(interestRate) {
let result = 0
let x = 1;
for(let year = 1; x < 2; year = year + 1){
  x = x + x * interestRate/100
  result = year
 }
 return result
}

//원금이 연이자율에 따라서 점점 증가하고 증가한 원금의 2배 이상이 되었을 때 이 때가 몇년이냐?

//result 변수를 선언한다. 0을 할당해준다
//원금 변수 x를 선언한다. 1을 할당해준다.
//원금 + 원금*연이율 >= 원금 * 2   가 되는데 걸리는시간을 리턴해야한다
//위의 식은 연 이율이 몇이되어도 항상 true이다. // 1 + 1.1 >= 2 // 2 + 2.3 >= 4 //
//언젠가 원금의 2배이상이 된다는 소리다. 
//원금의 2배가 안될때 까지의 year를 구한다. ==> 원금의 2배이상이될때까지 걸리는 기간을 구하는 것이다
//for문을 사용해준다. year을 선언해주고 1을 할당한다(연이율은 1년째부터 받는다) 
//원금 x는 2보다 작아야한다. --> 마지막바퀴에 2.xx가 되면 그 시점에서 조건문에 맞지않아 반복문이 멈추기때문이다
//year는 1씩 증가한다.
//원금 x는 x + x * interestRate / 100 로 재할당 해준다
//result에 year을 재할당해준다
//result를 리턴한다
アルゴリズム3
I/O例
let output1 = powerOfTwo(16);
console.log(output1); // true
let output2 = powerOfTwo(22);
console.log(output2); // false
function powerOfTwo(num) {
  if (num === 1) {
    return true;
  }

  if (num % 2!== 0) {
    return false;
  }

  let powered = 2;
  while (powered < num) {
    powered = powered * 2;
  }

  return powered === num;
}

//num를 입력받아 true / false 를 리턴해야한다

//만약 num 가 1이라면 true를 리턴한다
//만약 num를 2로 나누어 떨어진 나머지가 0이 아니라면 false를 리턴한다 (홀수는 false이다)
//변수 power를 선언해준다. 2로 할당해준다. <초기>
//while문을 사용해준다. power는 num보다 작아야한다. <조건>
//power는 power * 2가 된다. <증감>
//power === num 을 리턴해준다.
//이러면 true와 false가 알아서 된다.
8回繰り返す
I/O例
let output = makeOddDigits(3);
console.log(output); // --> "135"

output = makeOddDigits(5);
console.log(output); // --> "13579"
function makeOddDigits(num) {
  let result = ""
  let odd = 1
  let count = 0

  while(count < num){ 
    count = count + 1  
    result = result + odd
    odd = odd +2
  }
  return result
}

//변수 result를 선언한다. ""를 할당한다.
//변수 odd를 선언한다. 1을 할당한다
//변수 count를 선언한다. count는 0을 할당한다. (num를 언제까지 돌릴지 정하기 위해)
//while문을 사용해준다.
//count가 0일때 odd는 1 // count가 1 odd는 3 // count가 2 odd는 5 //count가 3 odd 7//count가 4일때 odd 9
//odd = odd + 2
//result는 result + odd로 할당해준다.
//result를 리턴해준다.
何度も繰り返される8日...私はあなたがまだ分からないと思って、ほほほ
私はずっとあなたが慣れるまで、あなた自身が解くまで解きます!
複文
I/O例
let output = listPrimes(2);
console.log(output); // --> '2'

output = listPrimes(6);
console.log(output); // --> '2-3-5'

output = listPrimes(18);
console.log(output); // --> '2-3-5-7-11-13-17'
コード#コード#
function listPrimes(num) {
let result = '2'
for(let i = 3 ; i <= num ; i ++){
  let isPrime = true
  for(let j = 2; j < i ; j++) {
    if(i%j === 0) {
      isPrime = false
      break
    }
  }
  if(isPrime === true){
    result = result + '-' + i
  }
}
return result
}

//변수 result를 선언한다. '2'를 할당한다
//for문을 만든다. i를 선언한다. 3을할당한다. i는 num와 같거나 작다. i는 1씩 커진다. (i는 소수)
//i는 소수이다. 변수 isPrime을 선언한다. true를 할당한다.
//내부 for문을 만든다. j를 선언한다.2로 할당한다. j는 i보다 작다. j는 1씩 커진다. (j는 나누는 수 이다.)
//만약 i를 j로 나누었을 때 나머지가 0이 된다면 isPrime을 false로 재할당한다. break를 추가한다.
//나머지가 0이 아니라면, isPrime은 true로 재할당된다.
//만약 isPrime이 true와 같다면 result = result + '-' + i 이다
//result를 리턴해준다.

  • isPrimeの位置をforドアの外に書く
    外部のfor文がisPrimeでtrueであるかどうかはわかりません.

  • jが数で割られていることを知らずに機械的に二重扉を使用した
    いつも2月中旬に複文をするときは、変数が何を意味するかを明らかにしてから首都コードを書きます!
  • オブジェクト17
    function getValueOfNthElement(arr, num) {
     if(arr.length === 0){
       return 'no name'
     }
    else if(num > arr.length -1){
       return arr[arr.length -1]['name']
     }
       return arr[num]['name']
    }
    
    //객체를 요소로 갖는 arr의 num번째 name value값을 얻어내야한다.
    //만약 arr의 길이가 0이라면 'no name'을 리턴받는다.
    //그렇지 않다면
    //arr[num]['name']이 나와야한다.
    オブジェクト19
    function extend(obj1, obj2) {
    for(key in obj2){
      if(obj1[key] === undefined){ //if(!(obj1[key]))
        obj1[key] = obj2[key]
      }
    }
    }
    
    //obj2에 key가 있다고 가정하자
    //만약 obj1에 key가 없다면
    //obj1[key]는 obj2[key]와 같다
    この問題は毎日間違っているようですが、もし中が毎日間違っていたら...
    私は首都コードを書くたびにobj 1に鍵があると仮定します.
    obj 2からkeyを取得するので、obj 2と仮定します.答えを間違えた二つ目の理由を書くために、別の方法で答えた.
    function extend(obj1, obj2) {
    for(key in obj2){
      if(key in obj1 !== key in obj2){
        obj1[key] = obj2[key]
      }
    }
    }
    
    //만약 obj1의 key가 obj2의 key와 다르다면
    //obj2의 key를 추가해준다.
    上のコードはobj 1にキーがないと正しいです.
    次のコードはobj 1のkeyとobj 2のkeyが異なることを条件につづられています