백준 코드 공부/C언어

백준 2588 : 곱셉 (C언어)

GUuu9 2021. 10. 23. 12:24
문제
(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
출력
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

세자리 수의 값을 두개를 입력받아 두번째 세 자리수는 각각의 위치 값에 대한 값만 곱셈하여

472 x 5   472 x 8  472 x3 애 대한 각각의 값을 출력하고 마지막에 전체의 곱셈한 값을 출력한다.

#include<stdio.h>
int main() {
    int a, b;
    scanf("%d%d", &a, &b);
    printf("%d\n", a * ((b % 100) % 10));
    printf("%d\n", a * ((((b % 100) - ((b % 100) % 10)))/10));
    printf("%d\n", a * ((b - (b % 100))/100));
    printf("%d", a * b);
}

첫번째의 계산은 세자리수중 1의 자리를 구하기 위해 나머지 385를 100으로 나눈 나머지 값 85, 10으로 나눈 나머지 값 5를 만들어낸다.

두번째 계산은 10의 자리를 구하는 것으로 385를 100으로 나눈 나머지 값에서 먼저의 5를 계산하여 빼주어 80을 만들어 준다. 출력에는 0이 하나 빠져서 나왔으므로 10으로 나누어 8로 변경해준다. 

세번째 계산은 100의 자리를 계산한다. 원래 값에서 나머지 값을 뺀 후 출력값을 맞춰 주기 위해 100으로 값을 나누어 준다.

Git
BaekJoon-Study/2588.c at C · GUuu9/BaekJoon-Study (github.com)