https://www.acmicpc.net/problem/10757
코드 #1
#include<stdio.h>
#include<string.h>
char reverse(char * array);
int main(void) {
char a[10001];
char b[10001];
char result[10002];
int sum = 0;
scanf("%s %s", a, b);
reverse(a);
reverse(b);
for(int i=0; i<10001; i++) {
sum = a[i] + b[i];
result[i] += sum%10;
if(sum > 9){
result[i+1]++;
}
sum = 0;
}
reverse(result);
for(int i=0; i<10002; i++) {
printf("%c", result[i]);
}
}
char reverse(char * array) {
int length = (int)strlen(array);
char temp;
for(int i=0; i<length/2; i++) {
temp = array[i];
array[i] = array[length-i-1];
array[length-i-1] = temp;
}
return array;
}
코드 #2
#include<stdio.h>
#include<string.h>
char reverse(char * array);
int main(void) {
char a[10002] = {0,};
char b[10002] = {0,};
char result[10003] = {0,};
int sum = 0;
scanf("%s %s", a, b);
reverse(a);
reverse(b);
for(int i=0; i<10002; i++) {
sum = (a[i] - '0') + (b[i] - '0');
result[i] += (sum%10 + '0');
if(result[i] > '9'){
result[i+1] += 1;
}
sum = 0;
}
reverse(result);
for(int i=0; i<10003; i++) {
printf("%c", result[i]);
}
}
char reverse(char * array) {
int length = (int)strlen(array);
char temp;
for(int i=0; i<length/2; i++) {
temp = array[i];
array[i] = array[length-i-1];
array[length-i-1] = temp;
}
return array;
}
코드 #3
#include<stdio.h>
#include<string.h>
char reverse(char * array);
int main(void) {
char a[10002] = {0,};
char b[10002] = {0,};
char result[10003] = {0,};
int length;
int carry = 0;
scanf("%s %s", a, b);
reverse(a);
reverse(b);
if(strlen(a) > strlen(b)) {
length = strlen(a);
} else {
length = strlen(b);
}
for(int i=0; i<length; i++) {
int sum = (a[i] - '0') + (b[i] - '0') + carry;
while(sum < 0) {
sum += '0';
}
if(sum > 9){
carry = 1;
} else {
carry = 0;
}
result[i] = sum % 10 + '0';
}
if(carry == 1) {
result[length] = '1';
}
reverse(result);
printf("%s", result);
}
char reverse(char * array) {
int length = (int)strlen(array);
char temp;
for(int i=0; i<length/2; i++) {
temp = array[i];
array[i] = array[length-i-1];
array[length-i-1] = temp;
}
return array;
}