zoj 2001 倒置输出

来源:互联网 发布:企业邮箱域名要备案吗 编辑:程序博客网 时间:2024/05/20 15:38
#include<stdio.h>
#include<string.h>
int main()
{
   char a[100],b[100];
   int c[100],d[100],f[100];
   int i,j,k,n,len1,len2,p;
   scanf("%d",&n);
   while(n--)
   {
           memset(c,0,sizeof(c));//初始化,这个算大数时很重要
           memset(d,0,sizeof(d));
           memset(f,0,sizeof(f));
           scanf("%s%s",a,b);
           len1=strlen(a);
           len2=strlen(b);
           for(i=0;i<len1;i++)//字符数字转换
           c[i]=a[i]-'0';
           for(i=0;i<len2;i++)
           d[i]=b[i]-'0';
           k=len1>=len2?len1:len2;
           for(i=0;i<k;i++)
           f[i]=c[i]+d[i];
           for(i=0;i<k;i++)
          {
                  if(f[i]>9)
                  f[i+1]=f[i+1]+f[i]/10;//进位
                  f[i]=f[i]%10;
          }
         if(a[0]=='0'&&b[0]=='0'&&len1==1&&len2==1)
                  printf("0");//全是0的情况单列出
        if(f[k])//判断最后一位是否进了位
                  p=1;
        else
                 p=0;
         j=0;//记录f[]前有几个0;如0001前有三个0
        for(i=0;i<k+p;i++)
        {
                if(f[i]==0)
                j++;
                else//遇到不是0的直接结束
                break;
        }
       for(i=j;i<k+p;i++)
                printf("%d",f[i]);//输出
     printf("\n");
     }
     return 0;
}
个人认为刷水题是一种锻炼,把一个个水题积攒起来,胜过你刷五道难题甚至更多。总之要厚积薄发。    
  
原创粉丝点击