본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 2588번: 곱셈 [C++]

문제 출처: www.acmicpc.net/problem/2588

 

2588번: 곱셈

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

www.acmicpc.net

 

1. 코드

 

2. 풀이

아래 풀이 과정은 예제 입력으로 예시를 들겠다.

n1 = A * (B % 10);

위 코드에서 B % 10는 1의 자리수만 남기 때문에 예제 입력을 예시로 든다면 385 % 10 = 5가 된다. 그리고 A(472)를 곱하면 2360이 나온다.

n2 = A * ((B % 100) - (B % 10)) / 10;

((B % 100) - (B % 10)) / 10은 10의 자리수를 도출하기 위해서 사용되었는데 ((385 % 100) - (385 % 10)) / 10 = (85 - 5) / 10 = 80 / 10 = 8이기에 이 값을 A(472)에 곱하면 3776이 나온다.

n3 = A * (B / 100);

385 / 100 = 3이고 이것을 A(472)에 곱하면 1416이 나온다.

cout << n3 * 100 + n2 * 10 + n1;

마지막으로 n3는 100배 n2는 10배를 n1은 1배를 하여 더하면 141600+37760+2360 = 181720이 나온다.