1002—A + B Problem II(高精度)
2012-07-10 22:29
162 查看
第一次正式开始编程之路,就拿这道题来说,对于许多神牛来讲,简直就是小case,然而,我却被这道题目宰了好长时间,提交了好多次都不成功,貌似有15次了,当时真想放弃了,
哎,小女出入编程之路,怎么可以这么容易被打败呢。于是乎,继续呗。。。
这道题目,我初看时,以为很简单,但是提交几次都失败后,才发现没想象的简单,需要用到高精度。还有神马前导不能为0,要用到数组来存储整数,数组中的每个元素都对应着大整数的每一位,按顺序排列。后来,了解了大整数相加的算法思想,在重新排了一次,变成格式错误,我改了好多,依旧presentation error。。。
纠结中……幸亏大神提醒,话说,题目要求每两个case之间留有一个空白行,但结尾不需要,结尾只要一个换行就可以了。。。于是乎。。。
在此,把代码展示下,留个纪念+教训+也是我正式踏上编程之路的开始
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1002
我的代码:
哎,小女出入编程之路,怎么可以这么容易被打败呢。于是乎,继续呗。。。
这道题目,我初看时,以为很简单,但是提交几次都失败后,才发现没想象的简单,需要用到高精度。还有神马前导不能为0,要用到数组来存储整数,数组中的每个元素都对应着大整数的每一位,按顺序排列。后来,了解了大整数相加的算法思想,在重新排了一次,变成格式错误,我改了好多,依旧presentation error。。。
纠结中……幸亏大神提醒,话说,题目要求每两个case之间留有一个空白行,但结尾不需要,结尾只要一个换行就可以了。。。于是乎。。。
在此,把代码展示下,留个纪念+教训+也是我正式踏上编程之路的开始
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1002
我的代码:
#include <iostream> using namespace std; #include <string.h> #include<string> #define MAX_LEN 1001 int an1[MAX_LEN+10]; int an2[MAX_LEN+10]; char szLine1[MAX_LEN+10]; char szLine2[MAX_LEN+10]; int main() {int t; string szLine1,szLine2; cin>>t; for(int k=1;k<=t;k++) { cin>>szLine1>>szLine2; memset( an1, 0, sizeof(an1)); memset( an2, 0, sizeof(an2)); int i, j; int nLen1 = szLine1.size(); for( j = 0, i = nLen1 - 1;i >= 0 ; i --) an1[j++] = szLine1[i] - '0'; int nLen2 = szLine2.size(); for( j = 0, i = nLen2 - 1;i >= 0 ; i --) an2[j++] = szLine2[i] - '0'; for( i = 0;i < MAX_LEN ; i ++ ) { an1[i] += an2[i]; if( an1[i] >= 10 ) { an1[i] -= 10; an1[i+1] ++; } } for( i = MAX_LEN; (i >= 0) && (an1[i] == 0); i -- ) ; if(i>=0) {cout<< "Case "<<k<<":"<<endl; cout<<szLine1<<" + "<<szLine2<<" = "; for( ; i >= 0; i--) cout<<an1[i]; if(k!=t) {cout<<"\n"<<endl;} else cout<<endl; } else {cout<< "Case "<<k<<":"<<endl; cout<<szLine1<<" + "<<szLine2<<" = "; cout<<"0"; if(k!=t) {cout<<"\n"<<endl;} else cout<<endl; } } return 0; }
相关文章推荐
- HDOJ1002 A+B Problem II(高精度/大整数加法)
- HDU 1002 A + B Problem II 高精度加法程序 覆盖大量字符串处理基础 详细注释
- HDOJ-1002 A + B Problem II 高精度(java)
- Hdu 1002 A + B Problem II (高精度相加)
- hdoj 1002 A + B Problem II 高精度 java
- HDOJ 1002 A + B Problem II 高精度的A+B问题
- HDU 1002 A + B Problem II(高精度)
- HDU-1023 Train Problem II 卡特兰数(结合高精度乘除)
- hdu1002 A + B Problem II
- hdu : 1002 A + B Problem II
- A + B Problem II—1002
- HDU 1002 A + B Problem II
- 【杭电】 1002 A + B Problem II
- HDOJ 1002 A + B Problem II(大数)
- HDU 1023 Train Problem II 卡特兰数 高精度
- Hdu 1002 A + B Problem II(大整数加法)
- HDOJ 1002 A + B Problem II (Big Numbers Addition)
- hdu 1002 A + B Problem II(大数相加)
- hdu-1002 A + B Problem II_(高精度加法)
- Problem : 1002 ( A + B Problem II )