hd 1753 大明A+B

zmj915 2011-09-17 02:00:29
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main()
{
string a,b,a1,b1;
int l1,l2,i,wei,f;
while(cin>>a>>b)
{
string c,d;
wei=0;
i=a.find('.');
// cout<<i<<endl;
if(i!=-1)
a1=a.substr(i);
else
a1="";
i=b.find('.');
// cout<<i<<endl;
if(i!=-1)
b1=b.substr(i);
else
b1="";
// cout<<a1<<' '<<b1<<endl;
l1=a1.length();
l2=b1.length();
// cout<<l1<<' '<<l2<<endl;
if(l1>l2)
{
for(i=0;i<l1-l2;i++)
{
b+="0";
}
}
if(l1<l2)
{
for(i=0;i<l2-l1;i++)
{
a+="0";
}
}
// cout<<a<<' '<<b<<endl;
for(i=a.length()-1;i>=0;i--)
{
// cout<<a[i]<<' '<<b[i]<<endl;
if(a[i]!='.'&&b[i]!='.')
{
c+=(a[i]-'0'+b[i]-'0'+wei)%10+'0';
wei=(a[i]-'0'+b[i]-'0'+wei)/10;
}
if(a[i]=='.'||b[i]=='.')
{
c+='.';
}
}
if(wei)
c+='1';
// cout<<c<<endl;
f=0;
if(c.find('.')!=-1)
{
for(i=0;i<c.length();i++)
{
if(f==0&&c[i]=='0')
{
f=0;
}
if(c[i]!='0')
{
if(c[i]=='.'&&f==0)
continue;
else
d+=c[i];
f=1;
}
if(c[i]=='0'&&f==1)
d+=c[i];
if(f==0&&c[i]=='.')
{
f=1;
}

}
for(i=d.length()-1;i>=0;i--)
cout<<d[i];
}
else
{
for(i=c.length()-1;i>=0;i--)
cout<<c[i];
}
cout<<endl;



}
return 0;
}

哪里错了
...全文
56 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zmj915 2011-10-25
  • 打赏
  • 举报
回复
哦哦,谢谢呀。呵呵。虽然现在acm不做了,但是还是很感谢
logiciel 2011-09-28
  • 打赏
  • 举报
回复
你的程序没有考虑整数部分长度不同的情况,如:
1.2 34.5
zmj915 2011-09-17
  • 打赏
  • 举报
回复
http://acm.hdu.edu.cn/showproblem.php?pid=1753
题目链接

64,662

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧