C++知识点总结(6):高精度乘法真题代码
一、高精度数 × 低精度数
#include <iostream>
#include <cstring>
using namespace std;int main()
{// 存储并输入两个数字 char a_str[1005] = {};long long b;cin >> a_str >> b;// 特例先行:结果是0的情况if (a == 0 || b == 0){cout << 0;return 0;} // 转换第一个高精度数 int a[1005] = {};int len_a = strlen(a_str);for (int i = 0; i <= len_a-1; i++){a[len_a-i-1] = a_str[i] - 48;}// 计算int len_ans = len_a;long long ans[1005] = {};long long in = 0;for (int i = 0; i <= len_ans-1; i++){ans[i] = a[i] * b + in; // 存储数字 in = ans[i] / 10; // 得到进位 ans[i] %= 10; // 在对应的数位上保留实际得数的最后一位 }// 输出结果 while (in > 0) // 最高位处理 {ans[len_ans] = in % 10;len_ans++;in /= 10;}// 正常输出 for (int i = len_ans - 1; i >= 0; i--){cout << ans[i]; }return 0;
}
二、高精度数 × 高精度数
#include <iostream>
#include <cstring>
using namespace std;int main()
{// 存储并输入两个数字 char a_str[1005] = {};char b_str[1005] = {};cin >> a_str >> b_str;// 转换高精度数 int a[1005] = {};int b[1005] = {};int len_a = strlen(a_str);int len_b = strlen(b_str);for (int i = 0; i <= len_a-1; i++){a[len_a-i-1] = a_str[i] - 48;}for (int i = 0; i <= len_b-1; i++){b[len_b-i-1] = b_str[i] - 48;}// 计算int ans[2010] = {};int in = 0;for (int j = 0; j <= len_b-1; j++){for (int i = 0; i <= len_a-1; i++){ans[i+j] = a[i] * b[j] + in + ans[i+j];in = ans[i+j] / 10;ans[i+j] %= 10; } // 最高位处理 ans[len_a+j] = in;in = 0; // 重置进位}// 正常输出int len_ans = len_a + len_b; // 结果的最大位数// 前导0while (ans[len_ans-1] == 0 && len_ans > 1){len_ans--;}for (int i = len_ans - 1; i >= 0; i--){cout << ans[i]; }return 0;
}
三、高精度数的平方
#include <iostream>
#include <cstring>
using namespace std;int main()
{// 存储并输出两个数字 char a_str[1005] = {};char b_str[1005] = {};cin >> a_str;strcpy(b_str, a_str);// 转换高精度数 int a[1005] = {};int b[1005] = {};int len_a = strlen(a_str);int len_b = strlen(b_str);for (int i = 0; i <= len_a-1; i++){a[len_a-i-1] = a_str[i] - 48;}for (int i = 0; i <= len_b-1; i++){b[len_b-i-1] = b_str[i] - 48;}// 计算int ans[2010] = {};int in = 0;for (int j = 0; j <= len_b-1; j++){for (int i = 0; i <= len_a-1; i++){ans[i+j] = a[i] * b[j] + in + ans[i+j];in = ans[i+j] / 10;ans[i+j] %= 10; } // 最高位处理 ans[len_a+j] = in;in = 0; // 重置进位}// 正常输出int len_ans = len_a + len_b; // 结果的最大位数// 前导0while (ans[len_ans-1] == 0 && len_ans > 1){len_ans--;}for (int i = len_ans - 1; i >= 0; i--){cout << ans[i];}return 0;
}
四、高精度阶乘
#include <iostream>
#include <cstring>
using namespace std;int main()
{// 输入int n;cin >> n;// 初始化计算相关变量 int in = 0;int ans[10005] = {1};int len_ans = 1;// 计算阶乘for (int num = 1; num < n; num++) // num是对应的因数 {// 高精度数 ×低精度数代码 for (int i = 0; i <= len_ans-1; i++) {ans[i] = ans[i] * num + in; // ans[i] = 上一轮的结果 * 下一个因数 + 上一次的进位 in = ans[i] / 10;ans[i] %= 10;}while (in){ans[len_ans] = in % 10;len_ans++;in /= 10;}}for (int i = 1; i <= len_ans; i++){cout << ans[i];}return 0;
}
建议结合课程学习:
戳进课程入口>>
相关文章:
C++知识点总结(6):高精度乘法真题代码
一、高精度数 低精度数 #include <iostream> #include <cstring> using namespace std;int main() {// 存储并输入两个数字 char a_str[1005] {};long long b;cin >> a_str >> b;// 特例先行:结果是0的情况if (a 0 || b 0){cout <&…...
Polygon zkEVM的Dragon Fruit和Inca Berry升级
1. Polygon zkEVM的Dragon Fruit升级 2023年8月31日,Polygon zkEVM团队宣称启动了其Mainnet Beta的Dragon Fruit升级的10天timelock,预计将于2023年9月11日激活。 Dragon Fruit升级点有: 改进了网络支持了最新的以太坊opcode——PUSH0 1.…...
【计算机网络学习之路】网络基础1
文章目录 前言一. 计算机网络发展局域网和广域网 二. 网络协议三. OSI七层模型四. TCP/IP四层(五层)模型五. 计算机体系结构与网络协议栈六. 协议形式及局域网通信数据包封装与分用 七. 跨网络通信八. MAC地址与网络通信的理解结束语 前言 本系列文章是…...
HTTP/2.0协议详解
前言 HTTP/2.0:互联网通信的革新标准 随着互联网技术的飞速发展,HTTP协议作为互联网应用最广泛的通信协议,也在不断演进和优化。HTTP/2.0是HTTP协议的最新版本,它旨在提供更高效、更安全、更快速的互联网连接。 一、HTTP/2.0的优…...
Python中的Random模块详解:生成随机数与高级应用
在Python编程中,随机数生成是许多应用的基础之一。random模块为我们提供了生成伪随机数的丰富工具,从简单的随机数生成到复杂的应用场景,都有很多功能可以探索。本文将深入介绍random模块的各个方面,通过详实的示例代码࿰…...
(论文阅读32/100)Flowing convnets for human pose estimation in videos
32.文献阅读笔记 简介 题目 Flowing convnets for human pose estimation in videos 作者 Tomas Pfister, James Charles, and Andrew Zisserman, ICCV, 2015. 原文链接 https://arxiv.org/pdf/1506.02897.pdf 关键词 Human Pose Estimation in Videos 研究问题 视频…...
【设计一个缓存--针对各种类型的缓存】
设计一个缓存--针对各种类型的缓存 1. 设计顶层接口2. 设计抽象类 -- AbstractCacheManager3. 具体子类3.1 -- AlertRuleItemExpCacheManager3.2 -- AlertRuleItemSrcCacheManager 4. 类图关系 1. 设计顶层接口 // 定义为一个泛型接口,提供给抽象类使用 public interface Cach…...
Django部署时静态文件配置的坑
Django部署时静态文件配置配置的坑 近期有个需求是用django进行开发部署,结果发现静态文件配置的坑是真的多,另外网上很多的内容也讲不清楚原理,就是这样这样,又那样那样,进了不少坑,这里记录一下关于css,…...
Android---网络编程优化
网络请求操作是一个 App 的重要组成部分,程序大多数问题都是和网络请求有关。使用 OkHttp 框架后,可以通过 EventListener 来查看一次网络请求的详细情况。一次完整的网络请求会包含以下几个步骤。 也就是说,一次网络请求的操作是从 DNS 解析…...
《算法通关村——不简单的字符串转换问题》
《算法通关村——不简单的字符串转换问题》 8. 字符串转换整数 (atoi) 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入…...
给VSCode插上一双AI的翅膀
#AI编程助手哪家好?DevChat“真”好用# 文章目录 前言一、安装DevChat1.1、访问地址1.2、注册1.3、在VSCode里安装DevChat插件1.3.1、未安装状态1.3.2、已安装状态 二、设置Access Key2.1. 点击左下角管理(“齿轮”图标)—命令面板ÿ…...
2023年亚太杯数学建模思路 - 案例:异常检测
文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…...
机器学习的医疗乳腺癌数据的乳腺癌疾病预测
项目视频讲解:基于机器学习的医疗乳腺癌数据的乳腺癌疾病预测 完整代码数据分享_哔哩哔哩_bilibili 效果演示: 代码: #第一步!导入我们需要的工具 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns %matplotlib inlin…...
解析:什么是生成式AI?与其他类型的AI有何不同?
原创 | 文 BFT机器人 快速浏览一下头条新闻,你会发现生成式AI似乎无处不在。事实上,一些新闻标题甚至可能是通过生成式AI编写的,例如OpenAI旗下的ChatGPT,这个聊天机器人已经展现出了生成看起来像人类所写文本的惊人能力。 当人们…...
国产化项目改造:使用达梦数据库和东方通组件部署,前后端分离框架
前提:前后端分离前后端包都要用war包。 1、springboot后端改变war包 pom文件添加 <packaging>war</packaging>添加依赖,并且支持tomcat<!-- war包 --><dependency><groupId>org.springframework.boot</groupId><…...
Nginx实现负载均衡
Nginx实现负载均衡 负载均衡的作用 1、解决单点故障,让web服务器构成一个集群 2、将请求平均下发给后端的web服务器 负载均衡的软硬件介绍 负载均衡软件: # nginx 四层负载均衡:stream(nginx 1.9版本以后有stream模块&#x…...
SpringCloud 2022有哪些变化
目录 前提条件 AOT支持 Spring Native支持 前提条件 Spring Cloud 2022.0.0是构建在Spring Framework 6.0和Spring Boot 3.0 之上的一S个主要版本。 JDK要求最低需要是Java 17J2EE要求最低需要Jakarta EE 9 AOT支持 Spring cloud 2022支持AOT编译,它是将程序源…...
如何快速本地搭建悟空CRM结合内网穿透工具高效远程办公
🌈个人主页:聆风吟 🔥系列专栏:数据结构、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. 无需公网IP,使用cpolar实现悟空CRM远程访问二. 通过公网来访问公司…...
Docker打包Python项目
1. 简介 Docker是一种开源的容器化平台,可以将应用程序及其依赖项打包到一个轻量级、可移植的容器中。通过使用Docker,可以简化Python项目的部署和运行,提高开发效率和应用程序的可移植性。 本文将介绍如何使用Docker来打包Python项目。我们…...
【Java并发编程一】并发与并行
为什么引入并发 摩尔定理逐渐失效,单核性能很难提升,通过组合多核性能来进一步满足实际需要,从而引入并发编程。在大部分场景下,并行是由于串行的,并行可以优化非关键节点的时间消耗。 并发的三大特性 原子性 某个…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
