728x90
문제 1225번
https://www.acmicpc.net/problem/1225
1225번: 이상한 곱셈
첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는 음이 아닌 정수이다. 수가 0인 경우에는 0만 주어지며, 그 외의 경우 수는 0으로 시작하지 않는다.
www.acmicpc.net
이 문제는 자릿수마다 곱해주고 다 더해줘야하기 때문에 입력값을 문자열로 받아준다. 그리고 이중 for문을 이용하여 각 자리수를 곱해주고 result변수에 더해주는데, 여기서 A,B는 문자열이므로 '0'를 빼서 곱해주고 result에 더한다. string에서 '0'을 빼면 int형이 된다. 그렇게 반복문을 다 돌면 result값을 출력해주면 끝난다.
#include <iostream>
#include <string>
using namespace std;
int main() {
string A, B;
long long result = 0;
cin >> A >> B;
for (int i = 0; i < A.length(); i++) {
for (int j = 0; j < B.length(); j++) {
result += (A[i] - '0') * (B[j] - '0'); // string - '0'을 하면 int형이 된다
}
}
cout << result;
return 0;
}
처음에 int로 했다가 틀려서 long long으로 바꿨다. 1만자리까지 곱의 결과를 더하기 때문에 int 범위를 초과할 수도 있어서 long long으로 해줘야 한다고 한다.
728x90
'백준 > C++' 카테고리의 다른 글
[C++] 백준 1654번 - 랜선 자르기 (0) | 2024.04.17 |
---|---|
[C++] 백준 7795번 - 먹을 것인가 먹힐 것인가 (0) | 2024.04.16 |
[C++] 백준 1264번 - 모음의 개수 (0) | 2024.04.14 |
[C++] 백준 7567번 - 그릇 (0) | 2024.04.12 |
[C++] 백준 4999번 - 아! (0) | 2024.04.09 |