View Code of Problem 3689

#include<stdio.h>
#include<string.h>
int main()
{
	int k=0;//case
	int n;
	scanf("%d",&n);
	for(int z=0;z<n;z++)
	{
		k++;
		int flag=0;//记录进位  
		char a[110],b[110],c[110]={0}; 
		scanf("%s",a);
		scanf("%s",b);
		int len1=strlen(a);
		int len2=strlen(b);
		//len-1和len-1做减法 
		int min=len1<len2?len1:len2; int i=0;
		int max=len1>len2?len1:len2;
		for(i=0;i<min;i++)
		{
			int num=(a[len1-1-i]-'0')+(b[len2-1-i]-'0')+flag;
			flag=num/10;
			c[i]=num%10+'0';
//			printf("%c %d\n",c[i],flag);
		}
		if(max==len1)
		{
			for(i;i<max;i++)
			{
				int num=(a[len1-1-i]-'0')+flag;
				flag=num/10;
				c[i]=num%10+'0';
//					printf("%c %d\n",c[i],flag);
			}
		}
		else 
		{
				for(i;i<max;i++)
			{
				int num=(b[len2-1-i]-'0')+flag;
				flag=num/10;
				c[i]=num%10+'0';
//					printf("%c %d\n",c[i],flag);
			}
		}
		if(flag==1)
		{
			c[i]='1';
		}
	
//			if(flag==0)
//			{
			for(i=strlen(c)-1;i>=0;i--)
					{
						printf("%c",c[i]);
					}
					printf("\n");
			
//			else 
//			{
//				for(i=strlen(c)-1;i>=0;i--)
//					{
//						printf("%c",c[i]);
//					}
//					printf("\n");
//			}
		
	}	
} 

Double click to view unformatted code.


Back to problem 3689