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;
} 

建议结合课程学习:

戳进课程入口>>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/147316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Lec14 File systems 笔记

文件系统中核心的数据结构就是inode和file descriptor 分层的文件系统&#xff1a; 在最底层是磁盘&#xff0c;也就是一些实际保存数据的存储设备&#xff0c;正是这些设备提供了持久化存储。在这之上是buffer cache或者说block cache&#xff0c;这些cache可以避免频繁的读…

MSYS2介绍及工具安装

0 Preface/Foreword 1 MSYS2 官网&#xff1a;MSYS2

2023年AI生成音频研究报告

第一章 行业概况 1.1 定义 AI音频生成行业&#xff0c;作为人工智能生成内容&#xff08;AIGC&#xff09;技术渗透的关键领域&#xff0c;正迅速成为技术革新的前沿阵地。这一领域专注于运用先进的人工智能技术和复杂算法来创造音频内容&#xff0c;覆盖了语音合成、音乐制作…

SQL Server中substring的用法

SQL Server中substring的用法 SQL中的substring函数是用来截取一个栏位资料中的其中一部分。 例如&#xff0c;我们需要将字符串’abdcsef’中的‘abd’给提取出来&#xff0c;则可用substring 来实现&#xff1a; select substring(abdcsef,1,3)结果为 abd括号中数字’1’表…

CentOS Stream 9-使用 systemd 管理自己程序时自定义日志路径

systemd 文件 [rootnode1 ~]# cat /etc/systemd/system/spms-wvp.service [Unit] DescriptionWVP service [Service] # 关键配置部分,注意这里的 spms-wvp &#xff0c;后面需要用 SyslogIdentifierspms-wvp StandardOutputsyslog StandardErrorsyslog Typesimple Environment…

虚拟机配置网络ip,主打一个详细

文章目录 一、前言二、安装vim编辑器三、检查联网状态1. 使用ping命令 四、查看ip五、ens33网卡六、开机启动ens33网卡七、获取子网地址和子网掩码八、配置网关与子网掩码1. 编辑虚拟网络信息2. 配置网关3. 配置ens33网卡信息 九、动态ip配置十、静态ip配置 一、前言 本文主要…

Linux的几个常用基本指令

目录 1. ls 指令2.pwd命令3.cd 指令4. touch指令5.mkdir指令6.rmdir指令 && rm 指令7.man指令8.cp指令9.mv指令10.cat指令 1. ls 指令 语法&#xff1a; ls [选项][目录或文件] 功能&#xff1a;对于目录&#xff0c;该命令列出该目录下的所有子目录与文件。对于文件&…

达芬奇DaVinci Resolve Studio 18.6.3 for Mac

DaVinci Resolve Studio 18是一款专业的视频编辑和调色软件&#xff0c;适用于电影、电视节目、广告等各种视觉媒体的制作。它具有完整的后期制作功能&#xff0c;包括剪辑、调色、特效、音频处理等。 以下是DaVinci Resolve Studio 18的主要特点&#xff1a; - 提供了全面的视…

【电路笔记】-快速了解无源器件

快速了解无源器件 文章目录 快速了解无源器件1、概述2、电阻器作为无源器件3、电感器作为无源器件4、电容器作为无源器件5、总结 无源器件是电子电路的主要构建模块&#xff0c;没有它们&#xff0c;这些电路要么根本无法工作&#xff0c;要么变得不稳定。 1、概述 那么什么是…

电磁场与电磁波part3--静态电磁场及其边值问题的解

1、当场源&#xff08;电荷、电流&#xff09;不随时间变化时&#xff0c;所产生的电场、磁场也不随时间变化&#xff0c;称为静态电磁场。静止电荷产生的静电场、在导电媒质中恒定运动电荷形成的恒定电场以及恒定电流产生的恒定磁场都属于静态电磁场。 2、静电场基本方程微分形…

Git 的基本概念和使用方式以及常见错误的处理方法

Git是一个分布式版本控制系统&#xff0c;可用于跟踪文件的历史记录。下面是Git的基本概念和使用方式&#xff1a; 仓库&#xff08;Repository&#xff09;&#xff1a;是Git中存储代码的地方&#xff0c;包括历史记录和元数据。可以被存储在本地或远程服务器上。 分支&#…

机器学习第6天:线性回归模型正则化

文章目录 机器学习专栏 正则化介绍 岭回归 岭回归成本函数 核心代码 示例 Lasso回归 Lasso回归损失函数 核心代码 弹性网络 弹性网络成本函数 核心代码 结语 机器学习专栏 机器学习_Nowl的博客-CSDN博客 正则化介绍 作用&#xff1a;正则化是为了防止模型过拟合…

京联易捷科技与劳埃德私募基金管理有限公司达成合作协议签署

京联易捷科技与劳埃德私募基金管理有限公司今日宣布正式签署合作协议,双方在数字化进程、资产管理与投资以及中英金融合作方面将展开全面合作。 劳埃德(中国)私募基金管理有限公司是英国劳埃德私募基金管理有限公司的全资子公司,拥有丰富的跨境投资经验和卓越的募资能力。该集…

Python之练习(四)

Python之练习&#xff08;四&#xff09; 递归练习 1、求n的阶乘 2、解决猴子吃桃问题 猴子第一天摘下若干个桃子&#xff0c;当即吃了一半&#xff0c;还不过硬&#xff0c;有多吃了一个。第二天早上又将剩下的桃子吃掉一半&#xff0c;又多吃了一个。 以后每天早上都吃了前…

pdf如何让多张图片在一页

pdf保存为一页六张图片的方法是&#xff1a; 1、打开pdf查看器,打开文档。 2、点击【打印】图标进入打印程序&#xff0c;选择打印范围。 3、在【打印处理】选项,选择【每张张上放置多页】。 4、自定义每页放置的图片张数为六张&#xff0c;并对打印排版预览设置。 5、设置打印…

Linux - 内核 - 安全机制 - 内存页表安全

说明 内核页表安全的最终目标是&#xff1a;将内核使用到的内存页&#xff08;内核与module占用&#xff09;的属性&#xff08;读/写/可执行&#xff09;配置成安全的&#xff0c;即&#xff1a;代码段和rodata段只读&#xff0c;非代码段不能执行等&#xff0c;用来防御堆栈…

Vue3 函数式弹窗

运行环境 vue3vitetselement-plus 开发与测试 1. 使用h、render函数创建Dialog 建议可在plugins目录下创建dialog文件夹&#xff0c;创建index.ts文件&#xff0c;代码如下 import { h, render } from "vue";/*** 函数式弹窗* param component 组件* param opti…

栈结构应用-进制转换-辗转相除法

// 定义类class Stack{// #items [] 前边加#变为私有 外部不能随意修改 内部使用也要加#items []pop(){return this.items.pop()}push(data){this.items.push(data)}peek(){return this.items[this.items.length-1]}isEmpty(){return this.items.length 0}size(){return th…

C#实现将Mysql数据迁移到SQL数据库

前提源数据库及目标数据库需要表结构一致 using System; using System.Windows.Forms; using MySql.Data.MySqlClient; using System.Data.SqlClient; namespace MysqlToSQL { public partial class Form1 : Form { private static string mysqlConnString "…

JUNIT使用和注意、以及断言的介绍使用、SpringBoot Test测试类的使用、maven配置使用junit详细介绍

参考文章&#xff1a; https://www.cnblogs.com/zhukaile/p/14514238.html&#xff0c;https://blog.csdn.net/qq_36448800/article/details/126438339 一、什么是单元测试 在平时的开发当中&#xff0c;一个项目往往包含了大量的方法&#xff0c;可能有成千上万个。如何去保…