大数加法
来源:互联网 发布:男女唱的网络红歌 编辑:程序博客网 时间:2024/06/18 06:01
void trs(string a,vector<int>& v)//一位一位的计算
{
v.clear();
int p =0;
for (int i = a.size() -1; i >= 0; i --) {
p = a[i] -'0';
v.push_back(p);
}
}
void ad(vector<int> &a,vector<int> &b)
{
vector<int> c;
int p =0;
for (int i =0; ; i ++) {
if (i >= a.size() && i >= b.size()) {
c.push_back(p);
break;
}
if(i < a.size())
{
p += a[i];
}
if (i < b.size()) {
p += b[i];
}
if (p >=10) {
c.push_back(p %10);
p /= 10;
}
else{
c.push_back(p);
p = 0;
}
}
p = c.size() -1;
while (c[p] ==0) {
p --;
}
if (p <0) {// 0 + 0 = 0
printf("0");
}
for (int i = p; i >=0 ; i --) {
printf("%d",c[i]);
}
printf("\n");
}
#include <iostream>
#include <string>
#include <vector>
using namespacestd;
const int base =100000000;//8位8位的算
void pf(int t)
{
int b =base;
while (t < b /10) {
cout <<0 ;
b /= 10;
}
cout << t ;
}
void trs(string s,vector<int> &va)//应该从低位开始划分
{
va.clear();
int p = (s.size() -1 ) /8 +1;//
int tmp =0;
for (int i =1; i <= p; i ++) {
tmp = 0;
int srt =max(0 , (int)s.size() -8 * i );
for (int j =0; j <8 && srt + j < s.size() -8 * i +8; j ++) {
tmp = tmp * 10 + s[srt +j] -'0';
}
va.push_back(tmp);
}
}
void ad(vector<int> &va,vector<int> &vb)
{
vector<int> vc;
for (int i =0,tmp =0; ; i ++) {
if (i >= va.size() && i >= vb.size() && tmp ==0) {
break;
}
int p = tmp;
if (i < va.size()) {
p += va[i];
}
if (i < vb.size()) {
p += vb[i];
}
vc.push_back(p %base);
tmp = p / base;//进位
}
cout << vc[vc.size() -1] ;
for (int i = vc.size() -2; i >= 0; i --) {
pf(vc[i]);//前导0,仅第一个不用补0
}
cout <<endl;
}
int main()
{
int t;
cin >> t;
string a,b;
vector<int> va,vb;
for (int i =1; i <= t; i ++) {
cin >> a >> b;
trs(a, va);
trs(b, vb);
if (i !=1) {
cout <<endl;
}
cout <<"Case " << i <<":" <<endl;
cout << a <<" + " << b <<" = " ;
ad(va,vb);
}
return0;
}
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- mysql单表递归查询(jpa[org.hibernate.QueryException: Space is not allowed afterQuery parameter prefix ':'])
- Android 工具类的两种写法---单例模式与静态方法
- 在OpenStack中创建网络
- nullptr模拟实现
- 蒙特卡罗方法入门
- 大数加法
- AsyncTask原理
- arcpy输入arcmap视图
- 文件分隔符和转义字符
- vue-cli+webpack实现多页面应用的配置
- java的动态绑定--core java读书笔记
- 遗传算法
- 搜索曝光-竞品对比
- Android音视频点/直播模块开发实践总结