brian990614   2년 전

반례 될만한 것들 다 쳐봤는데 다 제대로 답이 나옵니다. 어디가 틀렸는지 모르겠어요 ㅜㅜ 검토 한번만 부탁드립니다.

alsqja2626   2년 전

#include

#include

int main(void)

{

char A[10001] = { 0 };

char B[10001] = { 0 };

int num;

char copy[10001] = { 0 };

char result[10002] = { 0 };

int plus_num = 0;

scanf("%s %s", A, B);

if (strlen(A) > strlen(B))

{

for (int i = 0; i < strlen(B); i++)

copy[i] = B[i];

num = strlen(A) - strlen(B);

for (int i = 0; i < num; i++)

B[i] = '0';

for (int i = 0; i < strlen(copy) + 1; i++)

B[i + num] = copy[i];

}

else if (strlen(A) < strlen(B))

{

for (int i = 0; i < strlen(A); i++)

copy[i] = A[i];

num = strlen(B) - strlen(A);

for (int i = 0; i < num; i++)

A[i] = '0';

for (int i = 0; i < strlen(copy) + 1; i++)

A[i + num] = copy[i];

}

result[strlen(A)] = 0;

for (int i = strlen(A) - 1; i > 0; i--)

{

if (plus_num + A[i] + B[i] >= 106)

{

result[i] = plus_num + A[i] + B[i] - 58;

plus_num = 1;

}

else

{

result[i] = plus_num + A[i] + B[i] - 48;

plus_num = 0;

}

}

if (plus_num + A[0] + B[0] >= 106)

{

for (int i = strlen(A); i > 0; i--)

result[i + 1] = result[i];

result[1] = plus_num + A[0] + B[0] - 58;

result[0] = '1';

}

else

result[0] = plus_num + A[0] + B[0] - 48;

printf("%s", result);

}

brian990614   2년 전

헐 plus_num 변수를 0으로 초기화를 안했었네요.... 봐주셔서 감사합니다^^

댓글을 작성하려면 로그인해야 합니다.