(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때
(3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가,
둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
ex)
입력 출력
472 2360 - (3)
385 3776 - (4)
1416 - (5)
181720 - (6)
(2)로 입력받은 수의 일의자리, 십의자리, 그리고 백의자리를
따로 변수로 설정하여 각각 (1)에 입력받은 수와 곱을 하면 된다.
+) 값을 저장하기 위해서 Math.floor() 메서드를 사용했는데,
각 자리를 표현하기 위한 방법이 이것밖에 떠오르지 않았다.
추후에 좋은 방법이 떠오른다면 다시 풀어야 하는 문제이다!!
const readline = require('readline');
const rl = readline.createInterface({
input : process.stdin,
output : process.stdout
});
let input = [];
rl.on('line',function(line){
input.push(line);
}).on('close',function(){
let a = parseInt(input[0].split(' '));
let b = parseInt(input[1].split(' '));
let b0 = b%10; //일의 자리
let b1 = Math.floor(b/10); // 일의 자리를 제외한 두 자리
let b2 = b1%10; // 십의 자리
let b3 = Math.floor(b1/10); // 백의 자리
console.log(ab0);
console.log(ab2);
console.log(ab3);
console.log(a*b);
process.exit();
});
문제를 풀기 위해 고민해봤지만 각 자리를 구하기 위해 몫과 나머지를 이용하는 방법밖에는 떠올리지 못했다. 하지만 사칙연산의 범주 내에서 풀어야 하니 맞는 방법이라고도 생각한다.
부족한 글 읽어주셔서 감사합니다! 건강한 비판 항상 행복하게 받고 있습니다. 감사합니다!