思路
题意真的很容易理解错呀……
就是给两个数,翻转后加和,然后再翻转后输出
用字符串加,不用翻转(从头开始加就是反的),直接加然后除掉前面的 0 输出就行
代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char ans[20];
char num[20];
void add()
{
int tmp=0, i=0;
for(i=0; ans[i]&&num[i]; i++)
{
tmp = ans[i] + num[i] - 2*'0' + tmp;
ans[i] = tmp%10 + '0';
tmp /= 10;
}
if(ans[i])
{
for(; ans[i]; i++)
{
tmp = ans[i] - '0' + tmp;
ans[i] = tmp%10 + '0';
tmp /= 10;
}
}
else
{
for(; num[i]; i++)
{
tmp = num[i] - '0' + tmp;
ans[i] = tmp%10 + '0';
tmp /= 10;
}
}
if(tmp)
ans[i] = tmp + '0';
}
void print(char *str)
{
int i=0;
for(; str[i]=='0'; i++);
for(; i<str[i]; i++) printf("%c", str[i]);
printf("\n");
}
int main()
{
int n;
scanf("%d", &n);
while(n--)
{
memset(ans, 0, sizeof(ans));
memset(num, 0, sizeof(num));
scanf("%s%s", ans, num);
add();
print(ans);
}
return 0;
}