A + B Problem II(大整数加法)
来源:互联网 发布:Linux sl rl 休眠 编辑:程序博客网 时间:2024/05/16 05:42
题目链接:点击打开链接
题意:给出两个位数不大于1000的数,求和;
题解:
用数组存,之后按照加法的运算规则进行运算,得出一个数组,这个数组就是答案;
#include<iostream>#include<algorithm>#include<cmath>#include<cstdio>#include<cstring>#include<string>using namespace std;int main(){ int T; cin>>T; int P=T; int kase=0; while(T--){ int a[1000+100]; int b[1000+100]; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); string s1,s2; cin>>s1>>s2; int len1=s1.length(); int len2=s2.length(); for(int i=len1-1;i>=0;i--) a[len1-i-1]=s1[i]-'0'; for(int j=len2-1;j>=0;j--) b[len2-j-1]=s2[j]-'0'; int p=max(len1,len2); if(len1!=p) for(int i=len1;i<p;i++) a[i]=0; else if(len2!=p) for(int i=len2;i<p;i++) b[i]=0; else{ a[p]=0; b[p]=0; } //相差的位置存0,便于相加; int s[1000+100]; int c=0; memset(s,0,sizeof(s)); int t=0; cout<<"Case "<<++kase<<":"<<endl; cout<<s1<<" + "<<s2<<" = "; for(int i=0;i<p;i++){ int k=a[i]+b[i]+c; if(i==p-1){ if(k>=10){ s[t++]=k%10; s[t++]=k/10; } else s[t++]=k; } else{ s[t++]=k%10; c=k/10; } } for(int i=t-1;i>=0;i--) cout<<s[i]; if(kase==P) cout<<endl; else cout<<endl<<endl; } return 0;}
阅读全文
0 0
- HDU-1002 A + B Problem II(大整数加法)
- A + B Problem II(大整数加法)
- HDOJ1002 A+B Problem II(高精度/大整数加法)
- A + B Problem II(大整数加法)
- Hdu 1002 A + B Problem II(大整数加法)
- hdu1002 大大大整数加法 A + B Problem II
- 大整数加法 1002 A + B Problem II
- HDU 1002 A + B Problem II(大整数相加)
- A + B Problem II(高精度加法)
- A + B Problem II(大数加法)
- A + B Problem II (大数加法)
- HDU1002: A + B Problem II (很水的大整数)
- hdu 1002 A + B Problem II 大整数相加
- hdu 1002 A + B Problem II 大整数相加
- Problem B: 大整数的加法运算
- 【hdoj1002】 A + B Problem II(模拟加法)
- hdu 1002 A + B Problem II(高精度加法)
- nyoj103 A+B Problem II (大数加法)
- log4j多路径输出问题
- java Pattern和Matcher详解
- ZooKeeper学习笔记:zookeeperAPI的使用
- 对于Volley中onResponse无法返回数据结果的问题解决方法
- tomcat启动时报:IOException while loading persisted sessions: java.io.EOFException的解决方案
- A + B Problem II(大整数加法)
- apache和tomcat
- Flume安装及简单使用
- 数据组件
- [leetcode]61. Rotate List@Java解题报告
- 深度学习TensorFlow如何使用多GPU并行模式?
- 定时器和多线程
- 正则表达式Regular Expression
- 累了,有点迷茫了