알고리즘/L6 문자열
6. 큰 자릿수 덧셈
쿠쿠트레인
2020. 7. 30. 09:41
문제
두 자연수가 주어질 때 그들의 덧셈을 계산하는 프로그램을 작성하시오. 각 수는 1 이상 10^100(10의 100 거듭제곱) 미만의 범위를 가진다.
입력
첫 번째 줄과 두 번째 줄에 각각 하나의 자연수가 주어진다.
출력
첫 번째 줄에 덧셈의 결과를 출력한다.
예제 입력
123112981293812938139
1298928491101221811
예제 출력
124411909784914159950
문제풀이
#include <stdio.h>
#include <string.h>
char d[200],c[200];
char dd[200],cc[200];
char result[200];
int main(){
scanf("%s %s",&d,&c);
for(int i = 200-strlen(d);i<200;i++){
dd[i] = d[strlen(d)-200+i]-'0';
}
for(int i = 200-strlen(c); i<200;i++){
cc[i] = c[strlen(c)-200+i]-'0';
}
int max = strlen(d) > strlen(c) ? strlen(d) : strlen(c);
for(int i = 199; i>=199-max; i--){
result[i] += dd[i] + cc[i];
if(result[i]>9){
result[i-1]++;
result[i] -= 10;
}
}
for(int i = 199-max; i<=199; i++){
if(result[i] == 0 && i == 199-max){
continue;
}
else{
printf("%d",result[i]);
}
}
return 0;
}