C++使用string的大数运算(6)模加模减模乘模幂

2023-11-16

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

项目要点

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

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

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

比如:char a=161;

     cout<<(int)a;

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

这四个只要你完成了大数的加减乘法,以及取模运算之后就很简单了,这些函数参见之前大的博客,我只在这基础上写的代码

模幂运算在下个博客会讲到其的快速算法

具体代码如下:

string modadd(string a,string b,string c)
{
	string d;
	d=add(a,b);
	d=mod(d,c);
	return d;
}
string modminus(string a,string b,string c)
{
	string d;
	d=minus(a,b);
	if(d.at(0)=='-')
	{
		d.erase(0,1);
		d=mod(d,c);
		d=minus(c,d);
	}
	d=mod(d,c);
	return d;
}
string modmultiply(string a,string b,string c)
{
	string d;
	d=multiply(a,b);
	d=mod(d,c);
	return d;
}
string modpower(string a,long int b,string c)
{
	long int i;
	string d;
	d="1";
	for(i=0;i<b;i++)
	{
		d=modmultiply(d,a,c);
	}
	return d;
}

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

C++使用string的大数运算(6)模加模减模乘模幂 的相关文章

  • 几款好用的指纹识别工具

    几款好用的指纹识别工具 在web渗透过程中 对站点进行指纹探测识别非常重要 了解网站所用的web框架或者cms可以为后续的渗透提供思路和突破口 这篇文章主要用于总结几款我平时工作中经常使用的指纹识别工具 一 whatweb whatweb是
  • Python Requests使用Cookie的几种方式

    本文主要给大家介绍了关于Python Requests使用Cookie的几种方式 Python中的requests库可以使用cookie来维持会话状态 实现登录等操作 需要的朋友可以参考下 一 通过headers参数使用 通过headers
  • c语言实现字符串的指定位置删除

    要求 任意输入一串字符串 指定要删除的位置 并输入要删除指定位置后字符的个数 实现代码如下 include
  • el-table绑定的数组里面的对象值进行修改时,视图没有更新

    在Vue js中 如果您在对绑定到el table的数组里面的对象值进行修改后发现视图没有更新 可能是因为Vue js无法检测到数据的变化 解决这个问题的方法有以下几种 使用Vue set 方法显式地告诉Vue js数据已经发生了变化 例如
  • GNN等优缺点总结及解决方案

    https www zhihu com question 338051122 https www zhihu com question 346942899 https zhuanlan zhihu com p 291230435 GCN的缺
  • STM32实现MLX90614非接触测温串口显示(标准库与HAL库实现)

    目录 模块选择 编程环境 MLX90614基本原理 通信协议 SMBus通信 类IIC通信 代码实现 STM32与模块之间接线表 1 标准库实现温度采集 2 HAL库实现温度采集 模块选择 STM32F103C8T6 MLX90614 非接
  • 多目标跟踪问题

    A Baseline for 3D Multi Object Tracking 三维多目标跟踪 原文地址 https arxiv org pdf 1907 03961v4 pdf 用到的基础知识 卡尔曼滤波 和 匈牙利算法 匈牙利算法用来求
  • weex<==>nvue书写样式需要注意的点(全部)

    weex书写步骤 全局样式规划 将整个页面分割成合适的模块 flex 布局 排列和对齐页面模块 定位盒子 定位并设置偏移量 细节样式处理 增加特定的具体样式 1 通用样式 除此通用样式之外的属性 均不被支持 1 单位只支持px和wx 不受屏
  • 风起云涌,拓世法宝破茧而出!免费使用无限时长,领航数字人全新时代,你还在等什么?

    随着元宇宙概念的不断推进 数字化转型已经成为了时代的主流趋势 在这个背景下 虚拟数字人的发展迅速崭露头角 为各个行业带来了前所未有的应用机会 尤其是在短视频领域 由于短视频的流量和人力成本持续上升 数字人逐渐被企业视为一个新的探索方向 希望
  • 如何测试Android APP的耗电量?

    现在可以使用google提供的battery historian来测试 适用条件 5 0及以上手机 battery historian链接 google battery historian android吧 所以的android都自带的功能
  • Qt--自定义控件

    写在前面 Qt中提供了应用在各种场景的控件 使开发人员在实际工作中选择 但有些特定的场合中这些控件并不满足需要时 Qt允许使用自定义的控件 例 我们在工作中有这样一种需求 点击按钮会根据一些其他状态来显示不同的图片 这时Qt提供的QPush
  • 阿里巴巴开源的免费数据库工具Chat2DB

    Chat2DB 是一款由阿里巴巴开源的免费数据库工具 它为开发人员提供了一个强大且易于使用的平台 用于存储和查询数据 与传统的数据库工具相比 Chat2DB 具有以下特点和优势 多数据库支持 Chat2DB 可以与多种类型的数据库进行集成
  • GD32 OSC引脚做普通IO配置

    根据用户手册 bit15共同控制了PD0 PD1的重映射的使能 总的来说 比普通IO配置多开启一个复用时钟和重映射使能 rcu periph clock enable RCU GPIOD rcu periph clock enable RC
  • 第1关:Hbase数据库的安装

    在安装HBase之前你需要先安装Hadoop和Zookeeper 如果你还没有安装可以通过这两个实训来学习 Hadoop安装与配置 Zookeeper安装与配置 本次实训的环境已经默认安装好了Hadoop 接下来我们就开始安装配置HBase

随机推荐

  • 500G JAVA视频网盘分享 (Jeecg社区)

    http blog csdn net zhangdaiscott article details 18220411 csdn 排名400多名 500 G JAVA视频网盘分享 Jeecg社区 涵盖从java入门到深入架构 Linux 云计算
  • mermaid 用法

    div class article content tracking ad div class markdown views p 作者 黄永刚 p h2 a target blank a strong mermaid简介 strong h2
  • 11.Linux下Spark的安装配置以及spark-shell的启动和 Spark集群环境搭建

    本案例软件包 链接 https pan baidu com s 1zABhjj2umontXe2CYBW DQ 提取码 1123 若链接失效在下面评论 我会及时更新 目录 1 安装Spark 1 先用xftp将安装包传到home hadoo
  • springBoot整合RabbitMq实现confrim模式回调一直不成功的 坑

    这两天在学习springBoot整合RabbitMq实现confrim模式 网上的demo有很多 但是一直回调不成功 大家的配置大概都是如下图这样 你会发见这个已经废弃了 还有一种你写成这样 又或者你写成这样 没报错 但就是不回调 新版的R
  • 【编程测试题】连续最大和

    题目描述 一个数组有 N 个元素 求连续子数组的最大和 例如 1 2 1 和最大的连续子数组为 2 1 其和为 3 输入描述 输入为两行 第一行一个整数n 1 lt n lt 100000 表示一共有n个元素 第二行为n个数 即每个元素 每
  • 目标检测数据集分析

    原文链接 https ghlcode cn pages 250d97 目标检测数据集分析 新增支持数据集可视化 Ghlerrix DataAnalyze 平时我们经常需要对我们的数据集进行各种分析 以便我们找到更好的提高方式 所以我将我平时
  • ERROR! MySQL server PID file could not be found!解决方案

    首先怀疑是有僵尸mysqld的存在 首先查看进程 ps ef grep mysqld 然后用 kill 9 进程号杀死进程 重启mysql 但是问题并没有得到解决 再然后可以通过mysql的配置文件my cnf查看一下mysql的数据存储目
  • Python + ttkbootstrap 制作全网小说下载神器

    前言 ttkbootstrap是一个基于Python的开源库 用于创建漂亮且交互式的GUI应用程序 它是在Tkinter框架之上构建的 提供了一系列的Widget组件和样式 可以帮助开发者快速构建现代化的用户界面 今天做的是这个东西 蓝色的
  • Tensorflow 简单线性规划和逻辑回归

    Tensorflow 简单线性规划和逻辑回归 摘要 Tensorflow 中单变量线性回归 多变量的情况 用 tensorflow进行逻辑回归分类 参考文献 摘要 线性规划和逻辑回归分别是回归 regression 和分类 classifi
  • flask学习笔记(一)

    1 为什么要用web框架 稳定性和可扩展性强 可以降低开发难度 提升开发效率 总结 避免重复造轮子 2 Flask简介 Flask是轻量级web开发框架 Flask本身相当于一个内核 其框架核心包含 WSGI工具箱采用Werkzeug 路由
  • 基于ZYNQ FPGA的8路ADC数据采集与存储实现

    基于ZYNQ FPGA的8路ADC数据采集与存储实现 概述 在工程设计和科学研究中 数据采集与存储是一个重要的任务 为了满足高速 高精度和大容量的数据采集需求 本文将介绍如何基于ZYNQ FPGA平台实现8路ADC数据采集与存储 通过合理的
  • 如果android的广播注册后没有取消注册会发生什么?》,android – 我是否需要取消注册“匿名”BroadcastReceiver...

    我最近问了一个关于检查已发送短信状态的问题 给出的答案是一个代码片段 注册了两个 匿名内部 如果不正确 请更正我的术语 BroadcastReceivers监听短信发送 传送的广播 这些接收器只需要接收有关我的应用程序刚刚发送的SMS的数据
  • C/C++ 浮点数大小比较问题

    1 c 中浮点数注意 The important rule to remember is that powers of two and integer multiples thereof can be perfectly represent
  • ORACLE 造数脚本

    SELECT DBMS RANDOM VALUE FROM DUAL SELECT DBMS RANDOM VALUE 20 30 FROM DUAL SELECT DBMS RANDOM NORMAL FROM DUAL SELECT D
  • Base64编码(汇编版,未做过多优化,性能自认为还可以)

    感谢 DelphiGuy 于 2010 10 08 17 27 37 给出的提醒 function GetSizeCoder3To4 InputCount Integer Integer inline begin Result InputC
  • 本地映射到外网

    很多人做开发的苦恼 外网访问不了本地 很多调试进行不了 比如说微信开发 这个时候要用手机调试 但是服务器在自己电脑上 外网访问不了 这个时候我们可以用一些工具 使我们的内网ip映射到外网 让外网可以访问 一 使用ngrok让微信公众平台通过
  • POST请求常见错误及解决办法

    POST请求常见错误及解决办法 前后端分离 已经是web开发的主流 在前后端对接的过程中难免会碰到各式各样的问题 本文对近期项目中遇到的与 POST请求 有关的问题做了一个简要的汇总和分析 并列出了与之相关的解决办法 问题一 POST请求发
  • 区块链之java调用智能合约(二)部署智能合约

    前言 上一节 已经说过 如何的创建一个合约 如何编译合约 然后在java中调用 但是呢 这些还远远不够 那么还差哪些呢 现在就是如何将创建的智能合约部署的对应的共链 私链 测试链中了 需要部署后 才能真正的使用 现在就讲讲如何部署智能合约
  • linux下gcc的使用教程,Linux下GCC使用方法简介

    编译 第一步 是进行预编译 使用 E参数可以让GCC在预处理结束后停止编译过程 gcc E hello c o hello i 预处理的宏定义插入到hello i中 第二步 是将hello i编译为目标代码 这可以通过使用 c参数来完成 g
  • C++使用string的大数运算(6)模加模减模乘模幂

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