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;
}