개발 지식/알고리즘

[백준] 2588 곱셈

트리맨스 2019. 12. 23. 00:06
반응형



 문제의 내용은 간단합니다. 세 자릿수의 수와 세 자릿수의 곱을 다음과 같은 방법으로 계산해야 한다고 생각합시다.



이 때 1과 2의 숫자가 주어지면, 3,4,5,6의 숫자가 차례대로 나오게 하면 되는 문제입니다.


먼저 숫자 1과 2를 받아야 다음 수를 계산할 수 있겠죠. 두 개의 수를 받아줍니다. 

문제는 3번 부터 어떻게 해결해 나가는 것이지요. 천천히 생각해 봅시다. 3번의 숫자는 숫자 1과 2의 첫 번째 숫자를 곱한 결과 입니다. 이에 대한 방법은 2에 10을 나눈 나머지랑 곱하게 하면 됩니다. 그렇게 하면 3을 도출할 수 있습니다.


이제 4를 출력해야 합니다. 숫자 4는 1과 2의 두번째 자리를 곱하면 됩니다. 그렇다면 2에서의 두번째 자리를 추출해야 하는데, 어떻게 해야 할까요? 답은 간단합니다. 10으로 나눈 몫에서 10을 나눈 나머지가 2에서의 두번째 자리입니다.


위와 같은 과정을 반복문에 적용시키면, 10으로 나눈 몫에 10으로 나눈 나머지를 출력하면 됩니다. 하지만 반복문에 적용을 시키면 탈출할 조건도 있어야 합니다. 탈출할 조건은 2가 0이 될 때까지 나누었으면, 더이상 출력할 숫자가 없기 때문에 탈출이 가능하고, 1과 2의 곱만 출력하면 됩니다.


이러한 이론을 가지고 코드를 짜 보았습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
int main()
{
    int a,b,c,d;
    scanf("%d %d",&a,&b);
    c=a;d=b;
    while(b!=0)
    {
        printf("%d\n",a*(b%10));
        b/=10;
    }
    printf("%d",c*d);
}
cs


이상으로 문제 설명 마치겠습니다.

반응형

'개발 지식 > 알고리즘' 카테고리의 다른 글

[백준] 5567 결혼식  (0) 2021.04.11
[백준] 9663 N-Queen  (0) 2021.04.07
[백준] 2753 윤년  (0) 2019.12.18
[백준] 2606 바이러스  (0) 2019.07.12
[백준] 2884 알람 시계  (0) 2019.06.30