【题目链接】

ybt 1168:大整数加法
OpenJudge NOI 1.6 10:大整数加法

【题目考点】

1. 高精度

考察:高精加高精
高精度计算讲解

【解题思路】

注意:输入可能有多余的前导0,那么需要在将字符串转为数字数组时,调用setLen函数去掉多余的前导0。

【题解代码】

解法1:使用数组与函数

#include<bits/stdc++.h>
using namespace std;
#define N 205
//从数字数组a的第i位开始,删除高位的0
void setLen(int a[], int i)
{while(a[i] == 0 && i > 1)//去除多余的0i--;a[0] = i;
}
//将字符数组转化为数字数组 数字数组从第1位置到第len位置,从低位到高位保存各位数字,第0位置保存数字位数
void toNum(char s[], int a[])
{a[0] = strlen(s);for(int i = 1; i <= a[0]; ++i)a[i] = s[a[0] - i] - '0';setLen(a, a[0]);//去掉前导0
}
//输出数字数组
void showNum(int a[])
{for(int i = a[0]; i >= 1; --i)cout << a[i];cout << endl;
}
//高精加高精
void Add(int a[], int b[], int r[])
{int c = 0, i;for(i = 1; i <= a[0] || i <= b[0]; ++i){r[i] = a[i] + b[i] + c;c = r[i] / 10;r[i] %= 10;}r[i] = c;setLen(r, i);
}
int main()
{char s[N];int a[N] = {}, b[N] = {}, r[N] = {};cin >> s;toNum(s, a);cin >> s;toNum(s, b);Add(a, b, r);showNum(r);return 0;
}

解法2:使用高精度数字类

#include <bits/stdc++.h>
using namespace std;
#define N 205
struct HPN
{int a[N];//数字数组HPN(){memset(a, 0, sizeof(a));}HPN(char s[]){memset(a, 0, sizeof(a));a[0] = strlen(s);for(int i = 1; i <= a[0]; ++i)a[i] = s[a[0]-i] - '0';setLen(a[0]);        }void show(){for(int i = a[0]; i >= 1; --i)cout << a[i];cout << endl;}int& operator [](int i)//类似数组取值{return a[i];}void setLen(int i)//从第i位置开始,向低位寻找,直到找到一个不为0的数位,更新数字长度{while(a[i] == 0 && i > 1)i--;a[0] = i;}HPN operator + (HPN b)//高精加高精{HPN r;int i, c = 0;for(i = 1; i <= a[0] || i <= b[0]; ++i){r[i] = a[i] + b[i] + c;c = r[i] / 10;r[i] %= 10;}r[i] = c;r.setLen(i);return r;}
};
int main()
{char s1[N], s2[N];cin >> s1 >> s2;HPN n1(s1), n2(s2);HPN n3 = n1 + n2;n3.show();return 0;
}

信息学奥赛一本通 1168:大整数加法 | OpenJudge NOI 1.6 10:大整数加法相关推荐

  1. 信息学奥赛一本通 1126:矩阵转置 | OpenJudge NOI 1.8 10:矩阵转置

    [题目链接] ybt 1126:矩阵转置 OpenJudge NOI 1.8 10:矩阵转置 [题目考点] 1. 二维数组遍历 [题解代码] 解法1:构建新矩阵 矩阵转置后,原来i,j位置的元素会变到 ...

  2. 信息学奥赛一本通 1294:Charm Bracelet | OpenJudge NOI 2.6 7113:Charm Bracelet | 洛谷 P2871

    [题目链接] ybt 1294:Charm Bracelet OpenJudge NOI 2.6 7113:Charm Bracelet 洛谷 P2871 [USACO07DEC]Charm Brac ...

  3. 信息学奥赛一本通 1209:分数求和 | OpenJudge NOI 1.13 12:分数求和

    [题目链接] ybt 1209:分数求和 OpenJudge NOI 1.13 12:分数求和 [题目考点] 1. 求最大公约数 2. 求最小公倍数 [解题思路] 求最大公约数,可以用辗转相除法.具体 ...

  4. 信息学奥赛一本通 1173:阶乘和 | OpenJudge NOI 1.6 15 | 洛谷 P1009 [NOIP1998 普及组] 阶乘之和

    [题目链接] ybt 1173:阶乘和 注:一本通上这题,应该把n≤50n\le50n≤50当做n≤100n\le100n≤100来看 OpenJudge NOI 1.6 15:阶乘和 洛谷 P100 ...

  5. 信息学奥赛一本通 1128:图像模糊处理 | OpenJudge NOI 1.8 13:图像模糊处理

    [题目链接] ybt 1128:图像模糊处理 OpenJudge NOI 1.8 13:图像模糊处理 [题目考点] 1. 二维数组 2. 四舍五入取整函数 <cmath>中的函数: dou ...

  6. 信息学奥赛一本通 1127:图像旋转 | OpenJudge NOI 1.8 11:图像旋转

    [题目链接] ybt 1127:图像旋转 OpenJudge NOI 1.8 11:图像旋转 [题目考点] 1. 二维数组 [解题思路] 以下分析中,行列从1开始数.该二维矩阵有n行m列,行号为1~n ...

  7. 信息学奥赛一本通 1076:正常血压 | OpenJudge NOI 1.5 24:正常血压

    [题目链接] ybt 1076:正常血压 OpenJudge NOI 1.5 24:正常血压 [题目考点] 1. 循环统计连续处于某种状态的次数 例: 输入一个由英文数字组成的字符串,求其中最多连续出 ...

  8. 信息学奥赛一本通 1075:药房管理 | OpenJudge NOI 1.5 23:药房管理

    [题目链接] ybt 1075:药房管理 OpenJudge NOI 1.5 23:药房管理 [题目考点] 1. 循环.判断 [解题思路] 设置变量r表示药房剩余药品数量,设f表示没取上药的人数 每次 ...

  9. 信息学奥赛一本通 1053:最大数输出 | OpenJudge NOI 1.4 15

    [题目链接] ybt 1053:最大数输出 OpenJudge NOI 1.4 15:最大数输出 [题目考点] 1. if-else嵌套 2. 逻辑表达式 3. <algorithm> 中 ...

最新文章

  1. vuex结合php,vuex中store的使用介绍(附实例)
  2. PMP之项目资源管理---管理风格
  3. luogu_3966【题解】单词 AC自动机
  4. 升级鸿蒙系统照片,华为鸿蒙系统照片出炉,神似EMUI,海内外花粉沸腾了
  5. 刚刚开通blog写下几段文字,以表意义
  6. 多个折线样式_新技能get,折线图转化成多阶梯瀑布图
  7. 【编译原理笔记19】代码优化: 支配结点和回边,自然循环及其识别,删除全局公共子表达式和复制语句,代码移动,作用于归纳变量的强度削弱,归纳变量的删除
  8. wilcoxon符号秩检验matlab,符号检验和wilcoxon符号秩检验的区别
  9. c语言stdio函数大全,初学者常用的stdio库,原来还有这么多知识点
  10. SecureCRT安装破解教程
  11. 对数及对比度拉伸变换
  12. Quorum共识简析
  13. 【Python】多图形混合排版,如何在Matplotlib/Seaborn中实现?
  14. ORA-01119、ORA-27040的两种可能存在的错误
  15. GitChat·前端 | 从软件工程角度看大前端技术栈
  16. 调用浏览器打印显示不全的解决办法。
  17. 将来我一定将他(科比)讲给你听!特别是你在遇到坎坷,感到迷茫的时候!
  18. pat顶级1003 Universal Travel Sites (35 point(s))
  19. matlab simulink 除法,第03讲 MATLAB-simulink的数值运算.ppt
  20. 蓝鸟中文编程2.7破解版

热门文章

  1. VC++2010配置使用MySQL5.6
  2. Velocity语法参考
  3. 终于有人把用户画像的流程、方法讲明白了
  4. linux宝塔登录不上去怎么回事,宝塔面板点击登陆没有用怎么办
  5. skywalking使用方法_基于SkyWalking的监控系统安装与使用教程 PDF 下载
  6. 2022年第一个线上问题,被领导骂惨了!
  7. 抽一个读者,送她一台MacBook!
  8. RocketMQ基础概念剖析源码解析
  9. 阿里云MVP乔帮主:五大类型负载均衡的原理场景详解(文末赠书)
  10. 腾讯总监周颢:亿级用户微信采用的架构宝典