作者:谢諭宥 | 来源:互联网 | 2023-05-18 10:06
题意:先输入一个数 表示测试样例的个数,接着输入几个数(可以不是大数)。输入0结束求出所输入的几个大数的和。
#include
#include
#include
using namespace std;
int a[200],d[200];
char s[101];
void jw(int z[],int x[])
{
for(int i= 0; i <200; i++ )
{
z[i]+=x[i];
if(z[i]>=10)
{
/*z[i+1] = z[i+1]+z[i]/10;
z[i] = z[i]%10;*/
z[i+1]+=1;
z[i]-=10;/*这两种进位判断都可以!*/
}
}
}
int main()
{
int i,j,k,l,t;
int cs;
scanf("%d",&t);
while(t--)
{
memset(a,0,sizeof(a));
cs = 0;
while(1)
{
scanf("%s",s);
//if(s[0] == '0') 这样判断导致我WA了4次因为 数字可能前面有0
if(strcmp(s,"0")==0)
break;
cs++;
j = 0;
memset(d,0,sizeof(d));
int len =strlen(s);
for(i = len-1; i >= 0; i--)
d[j++] = s[i] - '0';
jw(a,d);
}
if(cs==0)
printf("0\n");
else
{
for(i = 200-1; i>= 0; i--)
if(a[i]) break;
for( ; i >=0;i--)
printf("%d",a[i]);
printf("\n");
}
if(t)
printf("\n");
}
return 0;
}