代码实现:
#include<stdio.h>
#include<string.h>
int main()
{
char chart[21] = { 0 }, num1[21] = { 0 }, num2[21] = { 0 }, result[21] = { 0 };
gets(chart), gets(num1), gets(num2);
int len1 = strlen(num1), len2 = strlen(num2), len_chart = strlen(chart);
for (int i = 0; i < len_chart; i++)
{
int n1 = (i < len1 ? (num1[len1 - i - 1] - '0') : 0);
int n2 = (i < len2 ? (num2[len2 - i - 1] - '0') : 0);
int base = chart[len_chart - i - 1] - '0';
base = (base == 0 ? 10 : base);
int n = n1 + n2;
result[21 - i - 1] += n;
result[21 - i - 2] += result[21 - i - 1] / base;
result[21 - i - 1] %= base;
}
for (int i = 0; i < 21; i++)
result[i] += '0';
for (int i = 0; i < 21; i++)
if (result[i] != '0'&&result[i] != 0)
{
puts(result + i);
return 0;
}
printf("0");
return 0;
}