BAEKJOON/단계별로 풀어보기

[BOJ][C언어, Python, Java] 2588번 : 곱셈

말하는 알감자 2022. 7. 25. 00:45

문제 링크 : https://www.acmicpc.net/problem/2588

🔒 문제

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

      4 7 2  ---------(1)

     x 3 8 5  ---------(2)

 -----------------------------------

     2 3 6 0  ---------(3)

    3 7 7 6  ---------(4)

   1 4 1 6   ---------(5)

 -----------------------------------

   1 8 1 7 2 0 ---------(6)

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

⌨ 입력

첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

🖨 출력

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

📚 예제

Ex)

472
385

2360
3776
1416
181720

📌 풀이

1) C언어
: c언어에서 제곱연산자는 없기 때문에 math.h를 include해서 pow함수 사용해야함

🔑 python 코드

import sys
input = sys.stdin.readline

a = int(input())
b = int(input())

ans1 = a * (b % 10)
ans2 = a * ((b % 100) // 10)
ans3 = a * ((b % 1000) // 100)
ans4 = a * b

print(ans1)
print(ans2)
print(ans3)
print(ans4)

🔑 java 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int a = Integer.parseInt(br.readLine()); 
        int b = Integer.parseInt(br.readLine());

        int ans1 = a * (b % 10);
        int ans2 = a * ((b % 100)/10);
        int ans3 = a * (b / 100);
        int ans4 = a * b;

        System.out.println(ans1);
        System.out.println(ans2);
        System.out.println(ans3);
        System.out.println(ans4);
    }
}

🔑 c언어 코드

#include<stdio.h>
#include<math.h>

int main()
{
    int A, B, C;
    scanf("%d %d", &A, &B);
    C = B;

    for (int i = 1; i < 4; i++)
    {
        printf("%d\n", A * (C % 10));
        C = B / pow(10,i);
    }
    printf("%d\n", A * B);

    return 0;
}