10의 거듭제꼴 형태의 두 정수에 대한 곱셈 또는 덧셈을 수행해야 한다.
두 수가 모두 10의 거듭제곱이기 때문에 어렵지 않게 풀 수 있습니다.
덧셈의 경우 두 수의 길이가 같다면 가장 왼쪽의 수를 2로 바꿔주면 됩니다. 만약 두 수의 길이가 다르다면, 더 긴 수에서 짧은 수의 1 위치에 1을 추가해주면 됩니다.
곱셈의 경우, 1을 출력하고, 두 수의 0의 갯수의 합만큼 0을 출력해주면 됩니다.
#include <stdio.h>
#include <string.h>
int is_same(char str1[], char str2[])
{
if (strlen(str1) != strlen(str2))
return 0;
for (int i = 0; i < strlen(str1); i++)
if (str1[i] != str2[i])
return 0;
return 1;
}
int main(void)
{
char num1[105], num2[105], oper;
scanf("%s %c %s", num1, &oper, num2);
if (oper == '+')
{
if (is_same(num1, num2))
{
printf("2");
for (int i = 0; i < strlen(num1) - 1; i++)
printf("0");
return 0;
}
if (strlen(num1) > strlen(num2))
{
num1[strlen(num1) - strlen(num2)] = '1';
printf("%s", num1);
}
else
{
num2[strlen(num2) - strlen(num1)] = '1';
printf("%s", num2);
}
}
else
{
printf("1");
for (int i = 0; i < strlen(num1) + strlen(num2) - 2; i++)
printf("0");
}
return 0;
}