64,637
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
int main()
{
string s1,s2,s3;
int a;
cin>>a;
for(int i=1;i<=a;i++)
{
cin>>s1>>s2;
int len1=s1.length();
int len2=s2.length();
int index=0,flag=0;
int len11=len1,len22=len2;
while(len1>=0&&len2>=0)
{
int x=s1.at(index++),y=s2.at(index++);
int sum=x+y+flag;
if(sum>9)
{
flag=1;
sum-=10;
}
else
{
flag=0;
}
s3.append((char*)sum);
len1--;
len2--;
}
if(len1==0)
{
for(int i=len1;i<len11;i++)
{
int s=s1.at(i);
s3.append((char*)s);
}
}
if(len2==0)
{
for(int i=len2;i<len22;i++)
{
int s=s2.at(i);
s3.append((char*)s);
}
}
cout<<"case "<<i<<":"<<endl;
cout<<s1<<" + "<<s2<<" = ";
for(int i=s3.length();i>=0;i--)
{
cout<<s3.at(i);
}
cout<<endl<<endl;
}
return 0;
}
int main()
{
char a[1001],b[1001],c[1001];
memset( a, '\0', sizeof(a) );
memset( b, '\0', sizeof(b) );
memset( c, '\0', sizeof(c) );
int number;
cin>>number;
for(int j=1; j<=number; j++)
{
cin>>a>>b;
```````````````
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[1001],b[1001],c[1001];
int number;
cin>>number;
for(int j=1; j<=number; j++)
{
cin>>a>>b;
int alength=strlen(a),blength=strlen(b);
int index=0,flag=0;
while (alength>=0&&blength>=0)
{
int sum=(a[--alength]-'0')+(b[--blength]-'0')+flag;
if(sum>9)
{
flag=1;
sum-=10;
}
else
{
flag=0;
}
c[index++]=char(sum+'0');
}
if (alength<0)
{
for (int i=blength;i>=0;i--)
{
int temp=b[i]-'0'+flag;
if (temp>9)
{
flag=1;
}
else
{
flag=0;
}
c[index++]=char(temp+'0');
}
}
else if (blength<0)
{
for (int i=alength;i>=0;i--)
{
int temp=a[i]-'0'+flag;
if (temp>9)
{
flag=1;
}
else
{
flag=0;
}
c[index++]=char(temp+'0');
}
}
if (flag)
{
c[index]=char('1');
}
cout<<"Case "<<j<<" :"<<endl;
cout<<a<<" + "<<b<<" = ";
for (int i=strlen(c)-1;i>=0;i--)
{
cout<<c[i];
}
}
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[1001],b[1001];
memset( a, '\0', sizeof(a) );
memset( b, '\0', sizeof(b) );
int number;
cin>>number;
for(int j=1; j<=number; j++)
{
char c[1001];
memset( c, '\0', sizeof(b) );
cin>>a>>b;
int alength=strlen(a)-1,blength=strlen(b)-1;
int index=0,flag=0;
while (alength>=0&&blength>=0)
{
int sum=(a[alength--]-'0')+(b[blength--]-'0')+flag;
if(sum>9)
{
flag=1;
sum-=10;
}
else
{
flag=0;
}
c[index++]=char(sum+'0');
}
if (alength<0)
{
for (int i=blength;i>=0;i--)
{
int temp=b[i]-'0'+flag;
if (temp>9)
{
flag=1;
temp-=10;
}
else
{
flag=0;
}
c[index++]=char(temp+'0');
}
}
else if (blength<0)
{
for (int i=alength;i>=0;i--)
{
int temp=a[i]-'0'+flag;
if (temp>9)
{
flag=1;
temp-=10;
}
else
{
flag=0;
}
c[index++]=char(temp+'0');
}
}
if (flag)
{
c[index]=char('1');
}
cout<<"Case "<<j<<" :"<<endl;
cout<<a<<" + "<<b<<" = ";
for (int i=(strlen(c)-1);i>=0;i--)
{
cout<<c[i];
}
cout<<endl;
}
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[1001],b[1001];
memset( a, '\0', sizeof(a) );
memset( b, '\0', sizeof(b) );
int number;
cin>>number;
for(int j=1; j<=number; j++)
{
char c[1001];
memset( c, '\0', sizeof(b) );
cin>>a>>b;
int alength=strlen(a)-1,blength=strlen(b)-1;
int index=0,flag=0;
while (alength>=0&&blength>=0)
{
int sum=(a[alength--]-'0')+(b[blength--]-'0')+flag;
if(sum>9)
{
flag=1;
sum-=10;
}
else
{
flag=0;
}
c[index++]=char(sum+'0');
}
if (alength<0)
{
for (int i=blength;i>0;i--)
{
int temp=b[i]-'0'+flag;
if (temp>9)
{
flag=1;
temp-=10;
}
else
{
flag=0;
}
c[index++]=char(temp+'0');
}
}
else if (blength<0)
{
for (int i=alength;i>0;i--)
{
int temp=a[i]-'0'+flag;
if (temp>9)
{
flag=1;
temp-=10;
}
else
{
flag=0;
}
c[index++]=char(temp+'0');
}
}
if (flag)
{
c[index]=char('1');
}
cout<<"Case "<<j<<" :"<<endl;
cout<<a<<" + "<<b<<" = ";
for (int i=(strlen(c)-1);i>=0;i--)
{
cout<<c[i];
}
cout<<endl;
}
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[1001],b[1001],c[1001];
memset( a, '\0', sizeof(a) );
memset( b, '\0', sizeof(b) );
memset( c, '\0', sizeof(c) );
int number;
cin>>number;
for(int j=1; j<=number; j++)
{
cin>>a>>b;
int alength=strlen(a),blength=strlen(b);
int index=0,flag=0;
while (alength>0&&blength>0)//从最高位开始相加
{
int sum=(a[--alength]-'0')+(b[--blength]-'0')+flag;
if(sum>9)
{
flag=1;
sum-=10;
}
else
{
flag=0;
}
c[index++]=char(sum+'0');
}
if (alength<=0)//a数组加完了,剩下b数组了
{
for (int i=blength;i>0;i--)
{
int temp=b[--i]-'0'+flag;
if (temp>9)
{
flag=1;
temp-=10;
}
else
{
flag=0;
}
c[index++]=char(temp+'0');
}
}
else if (blength<=0)//b数组加完了,剩下a数组了
{
for (int i=alength;i>0;i--)
{
int temp=a[--i]-'0'+flag;
if (temp>9)
{
flag=1;
temp-=10;
}
else
{
flag=0;
}
c[index++]=char(temp+'0');
}
}
if (flag)//如果还有进位
{
c[index]=char('1');
}
cout<<"Case "<<j<<" :"<<endl;
cout<<a<<" + "<<b<<" = ";
for (int i=(strlen(c)-1);i>=0;i--)//倒着输出
{
cout<<c[i];
}
cout<<endl;
}
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[1001],b[1001];
int number;
cin>>number;
for(int j=1; j<=number; j++)
{
cin>>a>>b;
char c[1001];//把字符数组C定义到循环体里,不然可能会影响后续数据的计算
int alength=strlen(a)-1,blength=strlen(b)-1;//这里分别定义成长度-1,然后在while里先使用后减
int index=0,flag=0;
while (alength>=0&&blength>=0)
{
int sum=(a[alength--]-'0')+(b[blength--]-'0')+flag;//乱码问题在这里,你是先减后使用,根据这个循环条件,会计算a[-1]或者b[-1]
if(sum>9)
{
flag=1;
sum-=10;
}
else
{
flag=0;
}
c[index++]=sum+'0';直接赋值就行了
}
if (alength<0)
{
for (int i=blength;i>=0;i--)
{
int temp=b[i]-'0'+flag;
if (temp>9)
{
flag=1;
temp-=10;//假如temp是10呢?
}
else
{
flag=0;
}
c[index++]=temp+'0';
}
}
else if (blength<0)
{
for (int i=alength;i>=0;i--)
{
int temp=a[i]-'0'+flag;
if (temp>9)
{
flag=1;
temp-=10;//
}
else
{
flag=0;
}
c[index++]=temp+'0';
}
}
if (flag)
{
c[index]='1';
}
else c[index]='\0';//
cout<<"Case "<<j<<" :"<<endl;
cout<<a<<" + "<<b<<" = ";
for (int i=strlen(c)-1;i>=0;i--)
{
cout<<c[i];
}
}
return 0;
}