Recent Posts
Notice
No Rules Rules
소음 (feat. 백준, 2935번) 본문
728x90
반응형
소음
https://www.acmicpc.net/problem/2935
// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string multiply(string num1, string num2){
int n = num1.size();
int m = num2.size();
string ans(n + m, '0');
for(auto i = n - 1; i>=0; --i)
for(auto j = m - 1; j >= 0; --j){
auto p = (num1[i] - '0') * (num2[j] - '0') + (ans[i + j + 1] - '0');
ans[i + j + 1] = p % 10 + '0';
ans[i + j] += p / 10;
}
for(auto i = 0; i < m + n; ++i)
if(ans[i] !='0')
return ans.substr(i);
return "0";
}
string add(string num1, string num2) {
string ans = "";
int carry =0;
int i = num1.size() - 1;
int j = num2.size() - 1;
while(i >= 0 || j >= 0 || carry){
int sum=0;
if(i >= 0)
sum += (int)num1[i]-'0';
if(j >= 0)
sum += (int)num2[j]-'0';
sum += carry;
carry = sum/10;
--i, --j;
ans.push_back((char)sum % 10 +'0');
}
reverse(ans.begin(), ans.end());
return ans;
}
int main() {
ios::sync_with_stdio(false), cin.tie(NULL);
string A, B;
char regi;
cin >> A >> regi >> B;
if(regi == '+')
cout << add(A, B);
else
cout << multiply(A, B);
return 0;
}
// *&)*@*
반응형
크기가 큰 두 수를 더하거나 곱하는 방법에 대한 문제입니다.
c++은 자료형이 담을 수 있는 한계가 있으므로 string을 통한 두 수의 합과 곱의 방법을 레퍼런스로 가지고 있으면 좋을 것 같습니다.
728x90
반응형
'생활 > 코테' 카테고리의 다른 글
장난감 조립 (feat. 백준, 2637번) (0) | 2023.04.17 |
---|---|
고양이는 많을수록 좋다 (feat. 백준, 27961번) (0) | 2023.04.17 |
숫자고르기 (feat. 백준, 2668번) (0) | 2023.04.13 |
주사위 게임 (feat. 백준, 2476번) (0) | 2023.04.13 |
카드 역배치 (feat. 백준, 10804번) (0) | 2023.04.12 |
Comments