杭电ACM求大数的问题 1002 #include#includeint main(){\x09char LA[1000],LB[1000];\x09int LC[1000];\x09int l,x,z,d,i,j,k,n,s=1;\x09scanf("%d",&n);\x09while(n--)\x09{\x09\x09scanf("%s%s",&LA,&LB);\x09\x09x=strlen(LA);\x09\x09z=strlen(LB);\x09\x09

来源:学生作业帮助网 编辑:六六作业网 时间:2024/05/07 22:16:03
杭电ACM求大数的问题1002#include#includeintmain(){\x09charLA[1000],LB[1000];\x09intLC[1000];\x09intl,x,z,d,i,

杭电ACM求大数的问题 1002 #include#includeint main(){\x09char LA[1000],LB[1000];\x09int LC[1000];\x09int l,x,z,d,i,j,k,n,s=1;\x09scanf("%d",&n);\x09while(n--)\x09{\x09\x09scanf("%s%s",&LA,&LB);\x09\x09x=strlen(LA);\x09\x09z=strlen(LB);\x09\x09
杭电ACM求大数的问题 1002
#include
#include
int main()
{
\x09char LA[1000],LB[1000];
\x09int LC[1000];
\x09int l,x,z,d,i,j,k,n,s=1;
\x09scanf("%d",&n);
\x09while(n--)
\x09{
\x09\x09scanf("%s%s",&LA,&LB);
\x09\x09x=strlen(LA);
\x09\x09z=strlen(LB);
\x09\x09d=0;
\x09\x09for(i=x-1,j=z-1;i>=0&&j>=0;i--,j--,k++)
\x09\x09{
\x09\x09\x09d=LA[i]-48+LB[j]-48+d;
\x09\x09\x09LC[k]=d%10;
\x09\x09\x09d=d/10;
\x09\x09}
\x09\x09if(k==x)
\x09\x09\x09while(z--)
\x09\x09\x09{
\x09\x09\x09\x09d=LB[z]-48+d;
\x09\x09\x09\x09LC[k]=d%10;
\x09\x09\x09\x09d=d/10;
\x09\x09\x09\x09z--;k++;
\x09\x09\x09}
\x09\x09\x09else
\x09\x09\x09\x09while(x--)
\x09\x09\x09\x09{
\x09\x09\x09\x09\x09d=LA[x]-48+d;
\x09\x09\x09\x09\x09LC[k]=d%10;
\x09\x09\x09\x09\x09d=d/10;
\x09\x09\x09\x09\x09x--;k++;
\x09\x09\x09\x09}
\x09\x09\x09\x09if(d!=0)
\x09\x09\x09\x09\x09LC[k]=d;
\x09\x09\x09\x09\x09k++;
\x09\x09\x09\x09\x09
\x09\x09\x09\x09\x09printf("Case %d:\n",s);
\x09\x09\x09\x09\x09printf("%s + %s =",LA,LB);
\x09\x09\x09\x09\x09for(i=k-1;i>=0;i++)
\x09\x09\x09\x09\x09printf("%d\n",LC[i]);
\x09\x09\x09\x09\x09s++;
\x09}
}

杭电ACM求大数的问题 1002 #include#includeint main(){\x09char LA[1000],LB[1000];\x09int LC[1000];\x09int l,x,z,d,i,j,k,n,s=1;\x09scanf("%d",&n);\x09while(n--)\x09{\x09\x09scanf("%s%s",&LA,&LB);\x09\x09x=strlen(LA);\x09\x09z=strlen(LB);\x09\x09
#include<stdio.h>
#include<string.h>
int main()
{
\x09char LA[1010],LB[1010]; //两个数最长1000,所以数组起码要开1001
\x09int LC[1010];//两个数的和最长是1001,所以数组起码开1002
\x09int l,x,z,d,i,j,k,n,s=1;
\x09scanf("%d",&n);
\x09while(n--)
\x09{
\x09\x09scanf("%s%s",&LA,&LB);
\x09\x09x=strlen(LA);
\x09\x09z=strlen(LB);
\x09\x09k=d=0;// init k,初始化k
\x09\x09for(i=x-1,j=z-1;i>=0&&j>=0;i--,j--,k++)
\x09\x09{
\x09\x09\x09d=LA[i]-48+LB[j]-48+d;
\x09\x09\x09LC[k]=d%10;
\x09\x09\x09d=d/10;
\x09\x09}
\x09\x09if(k==x)
\x09\x09\x09for(z -= k; z--;)//z要减去k
\x09\x09\x09{
\x09\x09\x09\x09d=LB[z]-48+d;
\x09\x09\x09\x09LC[k]=d%10;
\x09\x09\x09\x09d=d/10;
\x09\x09\x09\x09k++;//z-- deleted,z--这一句删掉,在循环里面已经自减了
\x09\x09\x09}
\x09\x09else
\x09\x09\x09for(x -= k; x--;)//x要减去k
\x09\x09\x09{
\x09\x09\x09\x09d=LA[x]-48+d;
\x09\x09\x09\x09LC[k]=d%10;
\x09\x09\x09\x09d=d/10;
\x09\x09\x09\x09k++;//x-- deleted,x--这一句删掉,在循环里面已经自减了
\x09\x09\x09}
\x09\x09if(d!=0)//这里用大括号把两句括起来
\x09\x09{
\x09\x09\x09LC[k]=d;
\x09\x09\x09k++;
\x09\x09}
\x09\x09\x09\x09
\x09\x09printf("Case %d:\n",s);
\x09\x09printf("%s + %s = ",LA,LB);//"%s + %s =" --> "%s + %s = ",加一个空格
\x09\x09for(i=k-1;i>=0;i--)//i++ --> i--,i++写错了吧
\x09\x09\x09printf("%d",LC[i]);//\n deleted,不要换行
\x09\x09printf("\n");//add newline 添加新行
\x09\x09s++;

\x09\x09if (n)//output an empty line between two cases,不是最后一个case的话,就在尾部加一个空行
\x09\x09\x09printf("\n");
\x09}
}