算法学习016 高精度加法运算 c++算法学习 中小学算法思维学习 比赛算法题解 信奥算法解析

目录

C++高精度加法运算

一、题目要求

1、编程实现

2、输入输出

二、算法分析

三、程序编写

四、运行结果

五、考点分析

六、推荐资料


C++高精度加法运算

一、题目要求

1、编程实现

用高精度算法实现两个数:m和n,m和n的位数在1到100之间

2、输入输出

输入描述:第一行m,第二行输入n,且m和n的位数在1到100之间

输出描述:只有一行,m和n相加的和

输入样例:

12345678876543218765432187687654

输出样例:

10000000075341975

二、算法分析

  1. 高精度加法算法的基本思想是将大整数按位进行计算,从低位到高位逐个相加,同时需要考虑进位的情况。
  2. 由于位数已经超出常规数据类型,所以需要将相加的数据以字符串的形式读入
  3. 将字符串翻转存入整型数组中,两数之和的位数最大为较大数的位数加 1
  4. 从低位到高位依次两两相加后,再加上上一位的进位,将和模 10 作为本位结果,将和除以 10作为下一位的进位
  5. 重复步骤 4,直到所有位数处理完,
  6. 从后往前找结果数组中第一个非0元素的位置(即去前导 0操作),从该位置开始逆序输出数组中的元素,即为最终的加法结果。

三、程序编写

#include<bits/stdc++.h>
#include<string>
using namespace std;
int A[102],B[102],C[102];
//将字符串转换为对应的整形数组 
int getInt(int t[],string s)
{int len = s.length(); for(int i=0;i<len;i++){t[i] = s[len-i-1]-'0';}return len;
}
int main()
{string s1,s2;cin >> s1 >> s2;int lena = getInt(A,s1);int lenb = getInt(B,s2);int lenc = max(lena,lenb);int k = 0;//进行逐位相加,k作为进位标识 for(int i=0;i<lenc;i++){C[i] = (A[i] + B[i] + k) % 10;k = (A[i] + B[i] + k) / 10;}C[lenc] = k;//最高位//去前导0 while(C[lenc] == 0 && lenc > 0) {lenc--;} for(int i=lenc;i>=0;i--){cout << C[i]; } return 0;
}

 本文作者:小兔子编程 作者首页:小兔子编程-CSDN博客

四、运行结果

1234567887654321
876543218768765410000000075341975

五、考点分析

难度级别:中等,这题相对而言在于如何转变思路,具体主要考查如下:

  1. 分析题目,找到解题思路
  2. 充分掌握字符串的使用
  3. 学会如何转变思路,进行加法进位
  4. 学会高精度加法运算的核心
  5. 学会输入流对象cin的使用,从键盘读入相应的数据
  6. 学会for循环的使用,在确定循环次数的时候推荐使用学会
  7. 掌握输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
  8. 学会分析题目,算法分析,将复杂问题模块化,简单化,从中找到相应的解题思路
  9. 充分掌握变量定义和使用、分支语句、循环语句和高精度算法的应用

PS:方式方法有多种,小朋友们只要能够达到题目要求即可!

六、推荐资料

  • 所有考级比赛学习相关资料合集【推荐收藏】

http://www.ppmy.cn/embedded/92833.html

相关文章

信创安全 | 新一代内网安全方案—零信任沙盒

在当今数字化时代&#xff0c;访问安全和数据安全成为企业面临的重要挑战。传统的边界防御已经无法满足日益复杂的内网办公环境&#xff0c;层出不穷的攻击手段已经让市场单一的防御手段黔驴技穷。当企业面临越来越复杂的网络威胁和数据泄密风险时&#xff0c;更需要一种综合的…

Javascript常见设计模式

JS设计模式学习【待吸收】-CSDN博客 JavaScript 中的设计模式是用来解决常见问题的最佳实践方案。这些模式有助于创建可重用、易于理解和维护的代码。下面列出了一些常见的 JavaScript 设计模式及其代码示例。 1. 单例模式&#xff08;Singleton&#xff09; 单例模式确保一…

设计指南:UI网页设计的无限可能

ui网页设计是一个系统工程&#xff0c;从前期规划定位&#xff0c;到原型图设计确认&#xff0c;再到设计稿件交付&#xff0c;最后是程序员搭建网站。对于企业来说&#xff0c;网站是他们的在线门户。与线下门店的实际装修建设相比&#xff0c;网站设计更多的是对其行业咨询、…

ASPICE各学科资格考试信息

Agile SPICE课程&#xff1a; 培训时间&#xff1a;2天&#xff0c; 考试题目&#xff1a;30道考题&#xff0c; 考试时间&#xff1a;45分钟&#xff0c;非英语母语15分钟&#xff0c; 成绩要求&#xff1a;22分及格&#xff08;75%正确率&#xff09;&#xff1b; Cybers…

【线性代数】【二】2.6 矩阵的四种基本子空间

文章目录 前言一、列空间及其零空间二、行空间及其零空间三、行空间与列空间的关系3.1 引理1&#xff09;证明3.2 引理2&#xff09;证明3.3 引理3&#xff09;证明3.4 行秩等于列秩证明 总结 前言 前面我们已经学习了矩阵的两个相关子空间&#xff1a;列空间与零空间&#xf…

HarmonyOS笔记3:从网络数据接口API获取数据

面向HarmonyOS的移动应用一般采用MVVM模式&#xff08;见参考文献【1】&#xff09;&#xff0c;其中&#xff1a; M&#xff08;Model层)&#xff1a;模型层&#xff0c;存储数据和相关逻辑的模型。它表示组件或其他相关业务逻辑之间传输的数据。Model是对原始数据的进一步处理…

如何快速编写一个 Web Components 组件?

前言 Web Components 是一种用于构建可复用的定制元素的技术&#xff0c;它允许开发者创建自定义的 HTML 标签&#xff0c;提供了一种在不同框架和库中共享组件的方式。本文将介绍 Web Components 的基本概念、编写和生命周期方法&#xff0c;以及在普通使用和 Vue 框架中的应…

双目视觉标定的一般方法

1 双目立体相机 双目立体相机是由两个单目相机根据 特定的参数组合而成&#xff0c;工作时可将左右两相机捕捉到的二维图像信息转换到三维立体空间 中&#xff0c;进而通过系列转换变为所需要的三维空间坐标信息。 2 一般过程 双目立体相机标定步骤一般有以下几个步骤&#…

古彝文——唯一存活的世界六大古文字

关注我们 - 数字罗塞塔计划 - 早在五千年前&#xff0c;彝族的先祖就发明了十月太阳历&#xff0c;成为中华文明的重要创造者之一&#xff1b;同时&#xff0c;彝族的先祖也创制了古彝文&#xff0c;开创了独具特色的彝族文化。古彝文也被称为古夷文、传统彝文&#xff0c;是相…

设计模式之备忘录模式

在软件开发过程中&#xff0c;经常会遇到需要恢复对象到之前状态的场景&#xff0c;例如编辑器的撤销操作、游戏的存档点等。这时&#xff0c;备忘录模式&#xff08;Memento Pattern&#xff09;就显得非常有用。备忘录模式是一种行为设计模式&#xff0c;它允许在不暴露对象细…

刀片式远程IO

一、功能概述 1.1设备结构 本产品是三格电子远程IO系列刀片式型号&#xff0c;以下刀片式IO。 刀片式IO旨在帮助用户在自动化项目上更便捷的选型和应用。为此刀片式IO采用耦合器和IO模块通过背板总线结合的方式&#xff0c;方便用户根据不同使用场景&#xff0c;灵活搭配扩展…

深入解析Apache Flink中的事件时间与处理时间

Apache Flink是一个强大的流处理框架&#xff0c;它支持两种主要的时间语义&#xff1a;事件时间&#xff08;Event Time&#xff09;和处理时间&#xff08;Processing Time&#xff09;。这两种时间语义对于理解和实现准确的流处理至关重要。本文将详细介绍Flink如何处理这两…

使用PXE和kickstart完成自动化批量主机的安装

本实验采用的版本为rhel7.9 kickstart&#xff1a; 首先写一个kickstart脚本 安装脚本工具 配置自动化脚本 下载http服务用来共享脚本 yum install httpd -y systemctl enable httpd --now 实验的过程中把防火墙和selinux都关闭 配置自动化脚本 创建一个软链接使得用户访…

【linux】curl命令用法

curl命令认识 curl命令其实在平常工作中就已经在使用了&#xff0c;但是一直没有系统看过&#xff0c;就在这记录下&#xff0c;以后要用的话&#xff0c;可以在这儿查阅。 curl命令写的更清楚一点其实是cURL&#xff08;client url&#xff0c;客户端URL或者command url命令…

[Git][分支管理][下]详细讲解

目录 1.合并冲突2.分支管理策略3.分支策略1.基本原则2.bug分支3.删除临时分支 1.合并冲突 在实际分⽀合并的时候&#xff0c;有时候可能会遇到代码冲突的问题&#xff0c;例如&#xff1a; dev分支在写一部分代码&#xff0c;而master分支也没闲着&#xff0c;也在写着同一份代…

UNI-APP_点击,长按,触摸,结束触摸事件

touchstartEventHandle手指触摸动作开始字节跳动小程序不支持touchmoveEventHandle手指触摸后移动字节跳动小程序不支持touchendEventHandle手指触摸动作结束字节跳动小程序不支持touchcancelEventHandle手指触摸动作被打断&#xff0c;如来电提醒&#xff0c;弹窗字节跳动小程…

SpringBoot使用Template请求http接口

在Spring Boot中&#xff0c;如果你想要通过模板&#xff08;template&#xff09;的方式连接HTTP服务&#xff0c;并发送HTTP请求&#xff0c;有几种不同的方式可以实现&#xff0c;但最直接和常用的方式之一是使用RestTemplate。RestTemplate是Spring提供的一个同步客户端&am…

未授权访问漏洞(重点版─=≡Σ(((つ•̀ω•́)つ)

1.* Redis 搭建靶场环境&#xff1a; 进入目录:cd/vulhub-master/redis/4-unacc 启动:docker-compose up-d 检查:docker-compose ps vi docker-compose.yml //查看端口和版本号 安装redis工具 在kali上安装redis进行服务链接 #安装redis apt-get install redis #redi…

git bash 如何显示当前时间?

在 Git Bash 中&#xff0c;你可以通过使用 date 命令来显示当前时间。以下是一些常用的格式化命令&#xff1a; 1. 显示当前日期和时间&#xff08;默认格式&#xff09;&#xff1a; date2. 只显示当前时间&#xff1a; date "%T" 3. 自定义时间格式&…

本地部署 Llama-3-EvoVLM-JP-v2

本地部署 Llama-3-EvoVLM-JP-v2 0. 引言1. 关于 Llama-3-EvoVLM-JP-v22. 本地部署2-0. 克隆代码2-1. 安装依赖模块2-2. 创建 Web UI2-3.启动 Web UI2-4. 访问 Web UI 0. 引言 Sakana AI 提出了一种称为进化模型合并的方法&#xff0c;并使用该方法创建大规模语言模型&#xff…