HDU 1002 A + B Problem II C++解法
来源:互联网 发布:mac电脑自带抠图软件 编辑:程序博客网 时间:2024/05/16 05:51
一开始我是用char 数组做的,但是后来觉得好麻烦,于是就用string对象来做,毕竟C++本来就是OOP语言
不多说,直接上代码:
#include <iostream>#include <string>//不能写成string,否则strlen未定义using namespace std;string sum(string &s1,string &s2){if(s1==""&&s2=="") return "0";if(s1=="")return s2;if(s2=="")return s1;string max,min;int lens1=s1.length();int lens2=s2.length();if(lens1<lens2){max=s2;min=s1;}else{max=s1;min=s2;}int maxlen=max.length();int minlen=min.length();int i,j;for(i=maxlen-1,j=minlen-1;j>=0;j--,i--)max[i]=max[i]+min[j]-'0';//加起来之后的数存到相应的max[i]中for(i=maxlen-1;i>0;i--)//检测max中每一位的值,除了最前面的那一位{if(max[i]>'9'){max[i]=max[i]-10;max[i-1]+=1;//进位}}if(max[0]>'9')//检测第一位{max[0]=max[0]-10;//记得换掉max[0]的值max="1"+max;//这里"1"或者'1'都可以}return max;}void main(){int num;cin>>num;int i=1;int count=num;while(num)//我只想说,格式是硬伤,没注意输出格式,愣是花多了半个多小时去调程序{string s1,s2;cin>>s1>>s2;cout<<"Case "<<i<<":"<<endl;cout<<s1<<" + "<<s2<<" = "<<sum(s1,s2)<<endl;//“ + ”前后是有空格的if(i<count)cout<<endl;num--;i++;//cout<<sum(s1,s2)<<endl;}}
HDU要看清楚格式输出的要求,否则坑底你别叫!!!
0 0
- HDU 1002 A + B Problem II C++解法
- HDU 1002 A + B Problem II
- HDU 1002A + B Problem II
- HDU 1002 - A + B Problem II
- HDU 1002 A + B Problem II
- HDU 1002 A + B Problem II
- HDU 1002 A + B Problem II
- HDU 1002 A + B Problem II
- HDU 1002 A + B Problem II
- hdu 1002 A+B Problem II
- HDU 1002 A + B Problem II
- hdu 1002 A + B Problem II
- HDU 1002 A + B Problem II (BigNums)
- hdu 1002 A + B Problem II
- hdu 1002 A + B Problem II
- hdu 1002 A + B Problem II
- HDU 1002 A + B Problem II
- HDU 1002 A + B Problem II
- POJ 2892 Tunnel Warfare
- SVN服务器搭建和使用(三)
- 一年成为Emacs高手更新至20140504版
- Objective-C规范注释心得——同时兼容appledoc(docset、html)与doxygen(html、pdf)的文档生成
- entry org.eclipse.osgi 4 0 message application error stack 1
- HDU 1002 A + B Problem II C++解法
- 新辰:河南工业90后被称”破烂王” 创业3年盈利15万
- jquery 瀑布流原理 页面到达底部加载数据的方法
- 数字签名是什么?
- 哈夫曼树及哈夫曼编码
- 单词数
- c++11 对std::function与std::bind理解
- matlab调用opencv
- ubuntu 14.04 搭建Android开发环境