永发信息网

杭电1002

答案:2  悬赏:70  手机版
解决时间 2021-05-31 20:34

#include<iostream>
using namespace std;
int main()
{
char a[1100],b[1100];
int a1[1100],b1[1100],c[1100]={0},n,n1;
cin>>n;
for(n1=0;n1<n;n1++)
{
cin>>a>>b;
int x,y,i,t=0,p,q,o;
x=strlen(a);
y=strlen(b);
for(i=x-1,t=0;i>=0;i--,t++)
{
a1[t]=a[i]-'0';
}
for(i=y-1,t=0;i>=0;i--,t++)
{
b1[t]=b[i]-'0';
}
q=x>y?x:y;
p=x<y?x:y;
for(i=0;i<p;i++)
{
c[i]=(a1[i]+b1[i])%10+c[i];
if(a1[i]+b1[i]>=10)
{
c[i+1]++;
}
}
if(x>y)
{
for(i=y;i<x;i++)
{

c[i]=a1[i]+c[i];
if(c[i]>=10)
{
c[i]=c[i]%10;
c[i+1]++;
}
}
}
else if(y>x)
{
for(i=x;i<y;i++)
{
c[i]=b1[i]+c[i];
if(c[i]>=10)
{
c[i]=c[i]%10;
c[i+1]++;
}
}
}
cout<<"Case "<<n1+1<<":"<<endl;
for(i=0;i<x;i++)
{
cout<<a[i];
}
cout<<" + ";
for(i=0;i<y;i++)
{
cout<<b[i];
}
cout<<" = ";
if(c[q]==1)
{
cout<<c[q];
}
for(i=q-1;i>0;i--)
{
cout<<c[i];
}
cout<<c[0]<<endl;
for(i=0;i<1100;i++)
{
c[i]=0;
a1[i]=0;
b1[i]=0;
}
if(n1<n-1)
{
cout<<endl;
}

}

return 0;
}

我哪里错????????

最佳答案

杭电的ACM online吧。我也是杭电的,你可以参考下我的:


#include<string>
#include<iostream>
using namespace std;


int main()
{
int T,i,j,v,l1,l2,l3,k,m,n,p,le;char str1[1000],str2[1000],str3[1000];
cin>>T;
for(i=0;i<T;i++)
{
cin>>str1>>str2;
l1=strlen(str1);l2=strlen(str2);
l3=(l1>l2)?l1:l2;str3[l3+1]='\0';for(v=0;v<=l3;v++)str3[v]='0';

for(k=0;l3-k>0;k++)
{
if(l1-k-1>=0&&l2-k-1>=0)
{
m=str1[l1-k-1]-'0';n=str2[l2-k-1]-'0';p=m+n;
if(p>9)
{
str3[l3-k]=str3[l3-k]+p-10;str3[l3-k-1]=str3[l3-k-1]+1;le=0;
while(str3[l3-k-1-le]>=58)
{
str3[l3-k-2-le]++;
str3[l3-k-1-le]=str3[l3-k-1-le]-10;
le++;
}
}
else
{
str3[l3-k]=str3[l3-k]+p;le=0;
while(str3[l3-k-le]>=58)
{
str3[l3-k-1-le]++;
str3[l3-k-le]=str3[l3-k-le]-10;
le++;
}
}
}
if(l1-k-1<0&&l2-k-1>=0)
{
n=str2[l2-k-1]-'0';p=n;str3[l3-k]=str3[l3-k]+p;le=0;
while(str3[l3-k-le]>=58)
{
str3[l3-k-1-le]=str3[l3-k-1-le]+1;
str3[l3-k-le]=str3[l3-k-le]-10;
le++;
}
}
if(l2-k-1<0&&l1-k-1>=0)
{
n=str1[l1-k-1]-'0';p=n;str3[l3-k]=str3[l3-k]+p;le=0;
while(str3[l3-k-le]>=58)
{
str3[l3-k-1-le]++;
str3[l3-k-le]=str3[l3-k-le]-10;
le++;
}
}
}


if(str3[0]-'0'==0)for(j=0;j<=l3;j++)str3[j]=str3[j+1];
cout<<"Case "<<i+1<<":"<<endl;
cout<<str1<<" + "<<str2<<" = "<<str3<<endl;
if(i!=T-1)cout<<endl;


}
return 0;
}


全部回答
#include<stdio.h> #include<string.h> int main(){ char x[1001],y[1001],z[1001]; int n,i,j,k,m,o; scanf("%d",&n); o=n; while(n--) { scanf("%s%s",x,y); i=strlen(x); j=strlen(y); for(k=0,m=0;i>0&&j>0;i--,j--) { m+=x[i-1]-'0'+y[j-1]-'0'; z[k++]=m%10+'0'; m/=10; } for(;i>0;i--) { m+=x[i-1]-'0'; z[k++]=m%10+'0'; m/=10; } for(;j>0;j--) { m+=y[j-1]-'0'; z[k++]=m%10+'0'; m/=10; } if(m>0) z[k++]=m%10+'0'; printf("Case %d:\n%s + %s = ",o-n,x,y); for(;k>0;k--) printf("%c",z[k-1]); printf("\n"); if(n) printf("\n"); } return 0;}貌似 更加帅气!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
手机QQ能上两个号吗?
动态网页连接数据库?!请教
家用电脑杀毒软件哪个好
谁有富贵门英文插曲MP3的链接呢?
请文学素养深厚的高手,帮我给女儿取名,姓“
办赴韩旅游签证大约需要多长时间,有什么手续
厦门海仓人才市场(未来橙堡车站)做几路车,
女生初恋爱的是别人,而后爱的是自己。真的是
口袋妖怪红宝石386版怎样去看看洞的冰地
赛尔号战斗系精灵?
怎样玩51,会的友友一定要教到底噢!
我装了QQ音乐,为什么没用
7月9号来月经,13号没完。排卵日是几号?排卵
我的手机话费怎么用得那么快?
一道数学问题不太明白,请帮忙~
推荐资讯
找5年高考3年模拟物理必修人教版高2上期淘宝
吃多少安眠yao能over?
深圳A股帐户可以买那些数字开头的股票.
谁知道羊流哪有卖小苏打水的啊
QQ幻想世界金银交易寄售挂单一天可以摆放几单
仙剑5是不是剧本都写好了?那啥时候出呀?
怎么设置路由器连路由器
火箭新赛季能进入季后赛吗?
QQ炫舞抓猪模式的那些问题是从哪里来的、哪里
PSP插上电源和USB就能开机 但是平时不能开机
哪有魔兽争霸3冰封王座v1.24下载
上海市中学教师节休息吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?