保研考研机试攻略:第四章——高精度问题

embedded/2024/11/14 6:21:06/

🍨🍨🍨这一章我们来重点看一些常见的高精度题型,只有一个问题,所以这次我们更新包括 pythonjava、C/C++解法等内容,希望能帮助大家更好地掌握计算机考研机试中所涉及到的高精度问题。

目录

python%E8%A7%A3%E6%B3%95-toc" style="margin-left:0px;">🧊🧊🧊4.1 python解法

🥥练习题目:

DreamJudge 1474 大整数加法

DreamJudge 1475 大整数乘法

🧊🧊🧊4.2 Java解法

🧊🧊🧊4.3 C/C++解法


🧊🧊🧊4.1 python解法

如果你的考试院校支持用 python,那真是太好不过了。Python 真是超级棒的一门语言,虽然python 速度慢,但是那极其丰富的库和框架,再加上简洁的语法,真是美妙至极。

最重要的是,在 python 眼中就没有“大数”这个东西,直接上代码:

python">while True:try:a, b = map(int, input().split())c = a+bprint(c)except:break

 Tips:使用 python 的同学可以关注这个专栏,后期更完所有的机试攻略后会更新python 笔记,敬请期待~

🥥练习题目:

DreamJudge 1474 大整数加法

python">while True:try:a,b=map(int,input().split())c=a+bprint(c)except:break

DreamJudge 1475 大整数乘法

python">while True:try:n = input()a = input()b = input()a = int(a)b = int(b)print(a*b)except:break

🧊🧊🧊4.2 Java解法

基本上所有的 OJ 都支持 Java,可以使用 Java 来解决高精度的题目。

BigDecimal(表示浮点数)和 BigInteger(表示整数)加上 import java.math.*

java">valueOf(parament); //将参数转换为指定类型
add(); //大数加法
substract(); //减法
multiply(); //乘法
divided(); //相除取整
remainder(); //取余
pow(); //a.pow(b) = a ^ b
gcd(); //最大公约数
abs(); //绝对值
negate(); //取反数
mod(); //a.mod(b) = a % b = a.remainder(b)
max(); min();
public int compareTo(); //比较
boolean equals(); //比较是否相等

参考代码:

java">import java.math.BigInteger;
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sr=new Scanner(System.in);while (sr.hasNext()) {BigInteger a,b;a=sr.nextBigInteger();b=sr.nextBigInteger();System.out.println(a.add(b));}}
}

🧊🧊🧊4.3 C/C++解法

C/C++可以通过模拟的方法解决高精度的问题,但是不是特别建议考试的时候自己手动去模拟大整数的问题,这样很容易出现失误。当然,如果是很简单的加减法运算,用 C/C++模拟也是挺不错的。下面给出代码:

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string Add(string a, string b) {//a 一直为位数较长的字符串if (a.length() < b.length()) a.swap(b);string result(a.length(), 0); //初步设置 result 长度为较长字符长度b.insert(0, a.length() - b.length(), '0'); //较短的字符串前面补零方便计算int carry = 0; //进位for (int i = a.length() - 1; i >= 0; i--) {int sum = (a[i] - 48) + (b[i] - 48) + carry;carry = sum / 10;result[i] = sum % 10 + 48;}//若进位不为 0,还要在前面补上进位if (carry != 0) {result.insert(result.begin(), carry + 48);}return result;
}int main() {string a, b;while (cin >> a >> b)cout << Add(a, b) << endl;return 0;
}

高精度问题首推python解法!!!

创作不易,点个赞吧~点赞收藏不迷路,感兴趣的宝子们欢迎关注该专栏~

勤奋努力的宝子们,学习辛苦了!🌷🌷🌷休息下,我们下部分再见👋( •̀ ω •́ )✧~


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

相关文章

矩阵--旋转图像

给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 &#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&a…

Dubbo从入门到应用:实战技巧和最佳实践

远程调用 一、Dubbo快速上手提供者DubboService 调用者DubboReference 开启Dubbo调用EnableDubbo 二、Dubbo快速入门1、添加 Dubbo 相关的 maven 依赖。2、定义服务接口3、 定义服务端的实现4、配置服务端及消费端 Yml 配置文件5、基于 Spring 配置服务端及消费端启动类6、消费…

element-plus默认菜单打开

在 Vue 3 中使用 Element Plus 的 <el-menu> 组件时&#xff0c;默认情况下菜单项是关闭状态的。如果你想让某个菜单项默认处于展开状态&#xff0c;你可以通过设置菜单项的 default-active 属性来实现。 默认写法 步骤 1: 设置 default-active 你需要在 <el-menu&…

浙商证券社招入职人才测评:语言数字逻辑性格北森测评笔试题库高分答案、通关技巧

浙商证券作为一家综合性证券公司&#xff0c;其社会招聘的待遇情况包括但不限于以下几个方面&#xff1a;首先&#xff0c;公司提供具有竞争力的薪酬体系&#xff0c;其中应届生的平均薪资待遇大约在12K-20K之间&#xff0c;并且可能发放20个月的薪资&#xff0c;总包大约在25万…

【车载开发系列】常见单片机烧录与调试设备

【车载开发系列】常见单片机烧录与调试设备 常见单片机烧录与调试设备 【车载开发系列】常见单片机烧录与调试设备一. ST-LINK二. J-Link三. ISP&#xff08;In-System Programming 系统在线编程&#xff09;四. USB DFU&#xff08;Device Firmware Upgrade&#xff09;五. JT…

异常篇(Java - 异常机制)(doing)

目录 一、何为异常 二、异常处理机制 1. 简介 2. 产生原因 三、异常类 1. Throwable 2. Exception&#xff08;RuntimeException、CheckedException&#xff09; 四、异常类型 1. 系统错误 2. 编译时期异常 3. 运行时期异常 4. 三种类型异常的区别 五、链式异常 1…

Qt如何调取打印机

在Qt中&#xff0c;可以使用QPrinter类来调用打印机。以下是一个简单的示例&#xff1a; cpp // 创建一个打印机对象 QPrinter *printer new QPrinter; // 设置为默认打印机 printer->setOutputFileName("file://localhost/lp0"); // 设置打印模式 printer-&…

【题目/训练】:双指针

引言 我们已经在这篇博客【算法/学习】双指针-CSDN博客里面讲了双指针、二分等的相关知识。 现在我们来做一些训练吧 经典例题 1. 移动零 思路&#xff1a; 使用 0 当做这个中间点&#xff0c;把不等于 0(注意题目没说不能有负数)的放到中间点的左边&#xff0c;等于 0 的…