(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
472
385
2360
3776
1416
181720
사실 인풋받아온 숫자인 b는 문자열을 자르는 split을 사용할 수 없다.
parseInt(input[1].split(''))를 하더라도 parseInt는 첫번째 배열요소만을 반환하기 때문에 모든 값을 숫자형으로 바꿀 수 없다.
또한 각 곱셈의 결과를 구했더라도 합계는 각 자릿수에 10 과 100을 곱해주어야 하기 때문에, sum과 같이 직접 곱해 더해주는 코드는 결국 확장성이 없다. 곱셈해야 하는 자릿수가 늘어나면 대응하기 어렵다.
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');
const a = parseInt(input[0]);
const b = parseInt(input[1]).split('')
let result = []
for(i=2;i>=0;i--){
result.push(a*b[i])
}
const sum = result[0]+result[1]*10+result[2]*100
console.log(result[0],result[1],result[2],sum)
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');
const a = parseInt(input[0]);
const b = parseInt(input[1]);
const oneNum = num2 % 10;
const tenNum = Math.floor((num2 % 100)/10);
const hundredNum = Math.floor(num2 / 100);
console.log(num1 * oneNum);
console.log(num1 * tenNum);
console.log(num1 * hundredNum);
console.log(num1 * num2);