hdu1002A + B Problem II

#include <iostream>
#include <string>
using namespace std;
string Reverse(string& str)              //string反转
{
 string tstr;
 tstr = str;                          //这块的初始化问题
 int len = str.length();
 for(string::size_type i = 0; i < str.size(); i++)
 {
  tstr[i] = str[len - i - 1];
 }
 return tstr;
}
string Maxsum(string str1,string str2)
{
 //反转过后
 str1 = Reverse(str1);
 str2 = Reverse(str2);
 string tstr;
 //让str1中存放着两者长度较大的
 if(str1.length() < str2.length())
 {
  tstr = str1;
  str1 = str2;
  str2 = tstr;
 }
 int len = str1.length() - str2.length();
 //str2后面加上len个0
 for(int i = 0; i < len; i++)
 {
  str2 = str2 + '0';
 }
 //把str2加到str1上,然后返回str1

 int x;
 int t = 0;
 for(i = 0; i < str1.length(); i++)
 {
  x = (str1[i] - '0') + (str2[i] - '0') + t;
  str1[i] = x % 10 + '0';
  t = x / 10;
 }
 char c;
 //如果t!=0则最后以为加上上t
 if(t != 0)
 {
  c = t + '0';
  str1 = Reverse(str1 + c);
 }
 else
 {
  str1 = Reverse(str1);
 }

 return str1;
}
int main()
{
 string str1,str2,temp;
 int T,i = 1;  

 cin>>T;

 while(i <= T)
 {
  cin>>str1>>str2;
  temp = Maxsum(str1,str2);


  cout<<"Case "<<i<<":"<<endl;

  //别忘了控制输出格式,就是最后一个案例要少输出一个endl
  if(i != T)
  cout<<str1<<" + "<<str2<<" = "<<temp<<endl<<endl;
  else
   cout<<str1<<" + "<<str2<<" = "<<temp<<endl;
  i++;
 }
 
 return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值