[백준] 10757. 큰수 A+B
Algorithm2021. 11. 23. 12:02
반응형
long long int로 풀어 보려 했는데, 10^10000이 long long int 마저 초과해버림
그래서 string으로 풂
IDEA
'0' == 48
a, b 둘 중 작은 글자 수만큼 반복
Ex : a = 99, b = 1123면
3 + 9 -> 12
2를 넣고
1을 올림
2 + 9 + 1 = 12
2를 넣고
1을 올림
1 올린 거와 '1123'의 1을 더해
2를 넣음
0 올린 거와 '1123'의 1을 더해
1을 넣음
int main()
{
string a , b;
string tmp;
string ans;
int up = 0; //올림 수
int one;
int sum;
cin >> a >> b;
//a는 짧은 거로 b는 긴 거로
if(a.size() > b.size())
{
tmp = a;
a = b;
b = tmp;
}
//a, b 길이
int a_s = a.size();
int b_s = b.size();
for(int i=0; i<b.size(); i++)
{
if(i < a_s) //a 길이만큼은 a와 b의 자리수를 합
sum = a[a_s-1-i] - 48 + b[b_s-1-i] - 48 + up;
else //이후부터는 b의 자리수만
sum = b[b_s-1-i] - 48 + up;
one = sum % 10;
up = sum / 10;
ans.insert(0,to_string(one)); //a b 합의 일의 자리수를 앞에 추가
}
if(up == 1) //마지막에 올림 수 가 있을 경우 앞에 추가
ans.insert(0,to_string(up));
cout << ans;
return 0;
}
반응형
'Algorithm' 카테고리의 다른 글
[백준] C++ 2775. 부녀회장이 될테야 (0) | 2021.11.24 |
---|---|
[Leetcode] 93. Restore IP Addresses (0) | 2021.11.23 |
[백준] 15947. 아기 석환 뚜루루 뚜루 (1) | 2021.11.23 |
[Leetcode] 686. Repeated String Match (re) C++ (0) | 2021.11.22 |
[백준] 5598. 카이사르 암호 (0) | 2021.11.21 |
댓글()