카테고리 없음

[자바스크립트] 거스름돈 구하기

왕초보코딩러 2023. 9. 11. 01:01
728x90

거스름돈을 구할 때는 몫을 구하고, 나머지를 구하는 연산이 필요한데,

자바스크립트에서 몫만 출력하는 방법은 Math의 내장 함수를 쓰는 방법이 제일 간단하더라고요..

 

몫 구하기

1. Math.floor() : 소수를 내림

(+ 올림은 Math.ceil()입니다.)

2. Math.trunc() : 소수를 버림

https://velog.io/@skyepodium/JS-%EC%A0%95%EC%88%98-%EB%82%98%EB%88%97%EC%85%88-%EB%AA%AB-%EA%B5%AC%ED%95%98%EA%B8%B0

 

[JS] 정수 나눗셈 - 몫 구하기

정수 몫 구하기

velog.io

 

저는 배열을 사용하여 반복문으로 코드를 작성했더니, 코드가 굉장히 짧졌습니다!!

필요한 변수

1. 나머지 값을 계산할 remain

2. 돈의 단위를 넣은 배열 arr

 

function giveRemain(payment, cost) {
  //거슬러 줘야 할 금액
  remain = payment - cost;
  arr = [50000, 10000, 5000, 1000, 500, 100];
  
  for (i of arr){
    console.log(`${i}원 : ${Math.floor(remain / i)}개`);
    remain %= i;
    //console.log(`남은 돈 : ${remain}원`);
  } 
}

일단 (지불한 돈) - (지불할 돈)을 remain 변수에 넣어줍니다.

그리고 돈의 단위를 넣은 arr 배열로 for .. of 반복문을 돌립니다.

remain/i의 몫만 추출하기 위해 내림 함수인 Math.floor()를 사용하여 출력했고

remain은 나머지 값만 넣기 위해 %를 사용했습니다.

 

 

예시>

giveRemain(100000, 3700);

출력>

50000원 : 1개
10000원 : 4개
5000원 : 1개
1000원 : 1개
500원 : 0개
100원 : 3개

 

이해가 안가실까봐 주석을 풀어서 남은 돈을 출력하는 코드도 넣어봤습니다.

 

출력>

50000원 : 1개
남은 돈 : 46300원
10000원 : 4개
남은 돈 : 6300원
5000원 : 1개
남은 돈 : 1300원
1000원 : 1개
남은 돈 : 300원
500원 : 0개
남은 돈 : 300원
100원 : 3개
남은 돈 : 0원

 

 

 

50원과 10원까지 응용해서 해보면 좋을 것 같습니다!!

아니면 지불한 돈이 지불할 금액보다 작을 때, 돈을 더 줘야 한다는 문구를 추가해도 좋을 것 같아요!!