C++使用string的大数运算(1)加法

2023-10-27

本次项目目标:使用C++完成对于大数的相关运算

项目要点

1.大数指的是远超long long int的数据

2.将大数用矩阵进行存储,并通过矩阵实现运算

3.本人采用字符串进行存储,应注意char的特点

比如:char a=161;

     cout<<(int)a;

此时会输出-95,而不是161,char类型首个比特位是作为正负号的

加法,此处只做自然数加法,因为存在负整数的话可以使用自然数减法来处理

运行截图及代码如下:


#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
#define n 10
string dezero(string a)//用来去掉正数前面的0,也就是说可以输入000001类似这样的数字
{
	long int i;
	for(i=0;i<a.length();i++)
	{
		if(a.at(i)>48) break;
	}
	if(i==a.length()) return "0";
	a.erase(0,i);
	return a;
}
string add(string a,string b)//自然数加法
{
	a=dezero(a);
	b=dezero(b);
	string c;
	string d="0";
	long int kmin,kmax,i;
	reverse(a.begin(),a.end());
	reverse(b.begin(),b.end());
	if(a.length()>b.length()) {kmin=b.length();kmax=a.length();c=a;}
	else {kmin=a.length();kmax=b.length();c=b;}
	c.insert(c.length(),d);
	for(i=0;i<kmin;i++)
	{
		if(a.at(i)>=48&&a.at(i)<=57) a.at(i)-=48;
		if(a.at(i)>=97&&a.at(i)<=122) a.at(i)-=87;
		if(b.at(i)>=48&&b.at(i)<=57) b.at(i)-=48;
		if(b.at(i)>=97&&b.at(i)<=122) b.at(i)-=87;
		c.at(i)=a.at(i)+b.at(i);
	}
	for(i=kmin;i<kmax+1;i++)
	{
		if(c.at(i)>=48&&c.at(i)<=57) c.at(i)-=48;
		if(c.at(i)>=97&&c.at(i)<=122) c.at(i)-=87;
	}
	for(i=0;i<kmax;i++)
	{
		if(c.at(i)>=n) 
		{
			c.at(i+1)+=c.at(i)/n;
			c.at(i)=c.at(i)%n;
		}
	}
	if(c.at(kmax)==0) 
	{
		c.erase(kmax,kmax+1);
	}
	for(i=0;i<c.length();i++)
	{
		if(c.at(i)>=10) c.at(i)+=87;
		if(c.at(i)<10) c.at(i)+=48;
	}
	reverse(c.begin(),c.end());
	return c;
}
int main()
{
	string a,b;
	while(cin>>a>>b)
	{
		cout<<add(a,b);
	}
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++使用string的大数运算(1)加法 的相关文章

  • QT系列第9节 文件目录操作

    QT编程中 文件目录操作很常见 现在就将常用的文件目录操作做一个总结 1 文件操作 QFile支持文本文件和二进制文件的操作 主要接口如下 qint64 read char data qint64 maxSize QByteArray re
  • ajax提交datagrid,AJAX DataGrid

    xmlns http tempuri org gt
  • PyTorch RuntimeError: DataLoader worker (pid(s) 15804) exited unexpectedly

    创建于 2021 10 20 1 报错 RuntimeError DataLoader worker pid s 15804 exited unexpectedly 网络上给出了方案 如 cuda 虚拟环境的共享内存不足 增大内存 改成更小
  • 窗口变化相关消息 OnSize、OnSizing和OnGetMinMaxInfo

    最近用到窗口变化的一些东西 遇到几个相关的消息函数 简要分析 作为备忘 3个消息分别是 WM SIZE WM SIZING WM GETMINMAXINFO 分别对应相应的处理函数 OnSize OnSizing OnGetMinMaxIn
  • Redis 10 大性能优化策略

    来源 阿里开发者 ID ali tech 一 Redis为什么变慢了 1 Redis真的变慢了吗 对 Redis 进行基准性能测试 例如 我的机器配置比较低 当延迟为 2ms 时 我就认为 Redis 变慢了 但是如果你的硬件配置比较高 那
  • Metasploitable2靶机渗透

    Metasploitable2靶机渗透 Metasploitable2介绍 Metasploitable2 虚拟系统是一个特别制作的ubuntu操作系统 本身设计作为安全工具测试和演示常见漏洞攻击 版本2已经可以下载 并且比上一个版本包含更
  • 阿里云服务器安全组放行宝塔端口8888

    阿里云服务器安装宝塔面板需要在安全组中开放8888 888 80 443 20 21端口 安全组默认只开放22和3389端口 阿里云服务器网来详细说下阿里云服务器ECS安全组开放宝塔面板端口的方法教程 云服务器安全组开放宝塔端口 阿里云服务
  • SpringBoot + Apache Shrio 构建通用权限系统,提示SecurityUtils.getSubject().getPrincipal() 转换类型错误

    构建SimpleAuthenticationInfo 权限配置信息 new SimpleAuthenticationInfo user password getName 参数说明 user 用户信息 password 用户密码 realm
  • Unity-网络开发(三)

    大小端模式 什么是大小端模式 大端模式 是指数据的高字节保存在内存的低地址中 而数据的低字节保存在内存的高地址中 这样的存储模式有点儿类似于把数据当作字符串顺序处理 地址由小向大增加 数据从高位往低位放 符合人类的阅读习惯 小端模式 是指数
  • c语言桶排序对链表,关于算法:如果我们使用链表实现存储桶,存储桶排序的复杂度如何为O(n + k)?...

    我很好奇 如果我们使用通过链表实现的存储桶 为什么存储桶排序的运行时间为O n k 例如 假设我们有以下输入 n no of element 8 k range 3 array 2 2 1 1 1 3 1 3 桶将如下所示 1 1 gt 1
  • 虚拟化习题(1)

    1 单选题 vmdk后缀的文件是 A 磁盘文件 B 内存文件 C 快照文件 D 磁盘锁文件 2 单选题 链接克隆是通过父虚拟机的 创建而成 因此节省了磁盘空间 而且克隆速度非常快 但是克隆后的虚拟机性能能会有所下降 A 磁盘 B 镜像 C
  • 【202206-3】角色授权

    AC的快乐无与伦比 本蒟蒻刚看到这道题时 就被超长的题干和复杂的关系唬住了 于是学习了各路大神的解法 终于AC 成功照虎画猫了 现将在此过程中学到的种种知识总结如下 作为本小白菜 不但小白还有菜 的编程笔记 Attention 一 C 中的
  • 第十届全国大学生信息安全竞赛-线上赛 write up(持续更新)

    0x00 WEB PHP execise web150 这是一道分值150的web题 打开题目链接之后 看到题目界面 可以看到有一处输入的地方可以输入PHP语句 尝试执行以下phpinfo 这里解释下 phpinfo是一个运行指令 目的为显
  • 15个常用excel函数公式_(干货)EXCEL常用函数公式大全及举例

    今天和大家分享一组常用函数公式的使用方法 用心掌握这些函数 工作效率会大大提升 欢迎转发给更多有需要的人 一 相关概念 一 函数语法 由函数名 括号 参数组成 例 求和函数 SUM A1 B2 参数与参数之 间用逗号 隔开 二 运算符 1

随机推荐

  • 渗透测试网络攻防--OSINT和被动侦察

    OSINT OSINT 是指可以从公告资源 特别是互联网中可以进行信息收集 分类 进攻性 收集目标测试过程中的相关信息 防御性 收集目标以前的违规信或与之相关的安全信息 收集信息范围 进攻 域名 谷歌缓冲 子域名 IP地址 电子邮件 共享主
  • C语言课程设计:单项选择题标准化考试系统

    导入时图片加载异常 故本文图例和图片均已隐去 只保留了功能结构图 程序设计环境 Visual Studio Code Sublime 4 一 课程设计任务 1 1课题背景 本项目旨在开发一个单项选择题标准化考试系统 能够方便地管理试题库 抽
  • 电脑能上网却打不开某个网站

    电脑能上网却打不开某个网站解决方法 方法一 打开电脑命令行 按住win r键输入cmd 回车 查看系统过往DNS地址记录 ipconfig displaydns 回车 清除DNS缓存记录 ipconfig flushdns 回车 方法二 在
  • SLA(服务等级协议)

    SLA Service Level Agreement的缩写 意思是服务等级协议 是关于网络服务供应商和客户间的一份合同 其中定义了服务类型 服务质量和客户付款等术语 定义SLA Service Level Agreement的缩写 意思是
  • [递归与分治算法][BOJ]1032-邮局选址问题

    其实这个题和上一个输油管道问题是异曲同工 只不过这个题目要分别求出横坐标和纵坐标的中位数 include
  • 基于预测的云资源弹性伸缩框架 MagicScaler,实现“高QoS,低成本”双丰收

    开篇 近日 由阿里云计算平台大数据基础工程技术团队主导 与计算平台MaxCompute团队 华东师范大学数据科学与工程学院 达摩院合作 基于预测的云计算平台资源弹性伸缩框架论文 MagicScaler Uncertainty aware P
  • python 图片与二进制之间的转换

    一 PIL格式图片转成二进制 先读取为PIL格式 再转为二进制 import io import base64 from PIL import Image def image2byte image 图片转byte image 必须是PIL格
  • curl wget 不验证证书进行https请求

    wget https x x x x get ips no check certificate curl https x x x x get ips k
  • matlab watershed函数简单实现_薛定宇教授大讲堂(卷):MATLAB程序设计

    00作者简介 薛定宇 分别在沈阳工业大学 东北大学和英国Sussex大学获得学士 1985年 硕士 1988年 和博士学位 1992年 1997年任东北大学信息学院教授 深耕于计算机在数学与自动控制学科的应用 主持了国家精品课程建设 并于1
  • 海龙科技荣获2011年IP-Guard企业信息安全监管系统深圳地区最高白金代理商

    如何在不影响原有工作流程的前提下保护设计图纸 财务数据 客户信息等关系到公司核心利益的敏感数据 如何防止内部用户在使用机密文档时利用剪贴板 截屏 打印等方式有意或者无意的泄露敏感内容 如何防止用户利用QQ MSN Email等私自外发文档造
  • JS字符串格式化

    字符串格式化String prototype format function var values arguments return this replace d g function match index if values lengt
  • 【C++】宏函数的巧用

    2023年9月10日 周日上午 目录 怎么定义有多行代码的宏函数 示例程序一 输出文本 示例程序二 统计时间 怎么定义有多行代码的宏函数 如果需要定义多行代码的宏函数 可以在宏函数中使用反斜杠 来表示该行代码还未结束 继续在下一行继续编写代
  • Linux 如何省去git记忆用户名和密码输入

    You can check your credentials storage by the following command vim git credentials 也可以直接编辑该文件 http username password gi
  • 【用户行为分析】-JS端埋点

    需求 在用户购买会员卡时埋点 获取的事件属性包括 神策预置属性 卡类型 卡名称 购卡支付金额等数据 事件设计 实现 引入Js SDK 将获取到的代码放入html 的 head 里面 靠前的位置处 JS SDK获取方式 参考神策官网 http
  • selenium应对选中元素属性为隐藏的解决方案

    一 表现形式 可以看到在密码输入的位置 style对应的属性是style display none 然后我们使用selenium去对应输入框send keys 的时候就会发现 会报错输入不进去内容 二 问题分析 官方文档 大白话讲的话意思就
  • JavaDay07

    打印10000以内的所有完全数 如果一个正整数等于除了它本身之外所有除数之和 这个数就是完全数 如6 1 2 3 28 1 2 4 7 14 package com bjpowernode day07 demo01 exercise 打印1
  • 多样性指数介绍

    之前了解了shannon diversity index 所以顺便补一下其他多样性指数的概念 I AM 分割线 1 Species richness 系统中物种的观察值是其真实物种丰富度的有偏估计值 并且观察值会随着取样的增加非线性的增长
  • 3.1 PTQ与QAT的介绍

    1 前言 TensorRT有两种量化模式 分别是implicitly量化 隐式量化 以及explicitly量化 显性量化 隐式量化 trt7 版本之前 只具备 PTQ 一种量化形式 trtexec直接转换 各层精度不可控 显示量化 显性量
  • Pytorch:dtype不一致(expected dtype Double but got dtype Float)

    RuntimeError Expected object of scalar type Double but got scalar type Float for argument 3 mat2 in call to th addmm out
  • C++使用string的大数运算(1)加法

    本次项目目标 使用C 完成对于大数的相关运算 项目要点 1 大数指的是远超long long int的数据 2 将大数用矩阵进行存储 并通过矩阵实现运算 3 本人采用字符串进行存储 应注意char的特点 比如 char a 161 cout