当前位置: 首页 > news >正文

【c++基础】高精度数不进位加法

高精度数不进位加法

谈及数字即可想到运算,那么高精度数怎么运算呢?今天来系统介绍一下高精度数的加法。
思考一下加法运算,我们可以简单将加法运算这样区分:

  1. 有无进位。
  2. 位数是否相同。
    这篇文章我们就来讨论一下无进位的高精度数计算。

相同位数无进位加法

这类的相对比较简单,我们只需要指定位数相加,然后正常顺序输出即可。

在这里插入图片描述

#include <iostream>
#include <cstring>
using namespace std;int main() {char a[1001] = {}, b[1001] = {}; // 定义字符数组存储输入的两个高精度数int a1[1001] = {}, b1[1001] = {}, c1[1001] = {}; // 定义整数数组用于存储转换后的高精度数及其和cin >> a >> b; // 输入两个高精度数int len = strlen(a); // 获取第一个高精度数的长度for(int i = 0; i < len; i++) {a1[i] = a[i] - '0'; // 将字符类型的数字转换为整数存储到a1数组中b1[i] = b[i] - '0'; // 将字符类型的数字转换为整数存储到b1数组中c1[i] = a1[i] + b1[i]; // 计算两个高精度数的对应位相加的和存储到c1数组中}for(int i = 0; i < len; i++) {cout << c1[i]; // 输出计算得到的高精度数的和}return 0;
}

不同位数无进位加法

问题来了,位数不同,如何完成加法呢?

我们拿出两个数举例:
例如:
321321321321 + 4564563
在这里插入图片描述

转换成数组以后,[0]位对齐,这时相加的结果并不是我们想要的 ,
毕竟我们做竖式运算时,是末尾对齐。
那要如何计算出正确答案呢?
在这里插入图片描述

1.将两个数组全都翻转。
2.翻转后[0]位对齐相加。
3.将翻转结果输出,即为我们想要的结果。

代码为:

    char a[1001]={},b[1001]={};        int a1[1001]={},b1[1001]={},c1[1001]={};	cin>>a>>b; 			int lena=strlen(a),lenb=strlen(b);int len=(lena>lenb?lena:lenb);//取较长数字的位数作为总位数for(int i=0;i<lena;i++){a1[i]=a[lena-1-i]-48;//将两个加数逆序转换成int型的数字}for(int i=0;i<lenb;i++){b1[i]=b[lenb-1-i]-48;//将两个加数逆序转换成int型的数字}for(int i=0;i<len;i++){c1[i]=b1[i]+a1[i];//对应位相加}for(int i=0;i<len;i++){cout<<c1[len-1-i];//将相加的和倒序输出}
http://www.lryc.cn/news/394789.html

相关文章:

  • UniApp 中 Web/H5 正确使用反向代理解决跨域问题
  • Redis Stream:实时数据流的处理与存储
  • 【论文阅读】-- Visual Traffic Jam Analysis Based on Trajectory Data
  • 修改编译依赖openssl的libcrypto.so
  • ����: �Ҳ������޷��������� javafx.fxml ԭ��: java.lang.ClassNotFoundException解决方法
  • 【C++】———— 继承
  • Python人生重开器
  • python 高级技巧 0708
  • HOW - React Router v6.x Feature 实践(react-router-dom)
  • `padding`、`border`、`width`、`height` 和 `display` 这些 CSS 属性的作用
  • C++ QT 全局信号的实现
  • 十款绚丽的前端 CSS 菜单导航动画
  • debain系统使用日志
  • 【Word】快速对齐目录
  • MATLAB基础应用精讲-【数模应用】 岭回归(Ridge)(附MATLAB、python和R语言代码实现)
  • 推荐6个开源博客项目源码,你会选哪个呢
  • OCR text detect
  • 【MySQL】MySQL连接池原理与简易网站数据流动是如何进行
  • 学数据结构学的很慢,毫无头绪怎么办 ?
  • VSCode常用快捷键和功能
  • 上海市计算机学会竞赛平台2023年2月月赛丙组平分数字(一)
  • Qwen1.5-1.8b部署
  • 关于7月1号centos官方停止维护7系列版本导致centos7+版本的机器yum等命令无法使用的解决教程
  • 2024人工智能大会_强化学习论坛相关记录
  • Android SurfaceFlinger——创建EGLContext(二十五)
  • python 10个自动化脚本
  • 填报高考志愿,怎样正确地选择大学专业?
  • Java 使用sql查询mongodb
  • WIN32核心编程 - 线程操作(二) 同步互斥
  • web自动化(六)unittest 四大组件实战(京东登录搜索加入购物车)