[백준BOJ2588/C++풀이] 곱셈

현도영·2023년 5월 2일
0

백준풀이

목록 보기
10/18

https://www.acmicpc.net/problem/2588


저는 2가지 방법을 생각해보았어요.

1번째는 (2) 위치에 들어갈 값을 string으로 받은 후, 인덱스/int형 변환으로 이용해서 계산하기. 2번째는 연산을 이용해서 일의 자리수, 십의 자리수, 백의 자리수를 구하고 그대로 계산하기.

제가 C++에 익숙하지 않아서 1번째 방법이 잘 구현이 안되더라고요. 그래서 일단 2번째 방법을 해보았습니다.


풀이

  • 1의 자리 수:N % 10
    ex) 428 / 10 = 42 ··· 8

  • 10의 자리 수:(N % 100) / 10
    ex) 428 / 100 = 4 ··· 28
    28 / 10 = 2 ··· 8

  • 100의 자리 수 :N / 100
    ex) 428 / 100 = 4 ··· 28

제출

#include <iostream>
using namespace std;

int a, b;

int main() {
	cin >> a;
	cin >> b;

	int first = a * (b % 10);
	int second = a * ((b % 100) / 10);
	int third = a * (b / 100);
	int ans = first + (second * 10) + (third * 100);

	cout << first << endl;
	cout << second << endl;
 	cout << third << endl;
	cout << ans;

	return 0;
}
profile
코딩초보의 공부용

0개의 댓글