문제
(A+B)%C는 ((A%C) + (B%C))%C 와 같을까?
(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?
세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)
출력
첫째 줄에 (A+B)%C,
둘째 줄에 ((A%C) + (B%C))%C,
셋째 줄에 (A×B)%C,
넷째 줄에 ((A%C) × (B%C))%C를 출력한다.
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split(' ');
const a = Number(input[0]);
const b = Number(input[1]);
const c = Number(input[2]);
console.log((a + b) % c);
console.log(((a % c) + (b % c)) % c);
console.log((a * b) % c);
console.log(((a % c) * (b % c)) % c);
예제입력1 | 예제출력1 |
---|---|
5 8 4 | 1 1 0 0 |
Number()
,parseInt()
의 차이
parseInt()
함수를 사용하여 입력 값을 정수형으로 변환하고 이 함수는 주어진 문자열에서 처음부터 시작하여 숫자를 찾아 변환합니다. 따라서 만약 문자열이 숫자로 시작하지 않는다면NaN
을 반환할 수 있습니다. 또한, 두 번째 인자를 통해 진법을 지정할 수 있습니다.
Number()
함수를 사용하여 입력 값을 숫자로 변환하고 이 함수는 문자열이 숫자로 시작하지 않더라도 가능한 숫자 부분을 변환하여 반환합니다. 또한,parseInt()
함수와 달리 진법을 지정할 필요가 없습니다.
따라서, 두 함수의 차이는 숫자로 변환할 때 문자열의 형식에 따라 반환 값이 다를 수 있는지 여부입니다.