当前位置: 首页 > news >正文

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

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

目录

🧊🧊🧊4.1 python解法

🥥练习题目:

DreamJudge 1474 大整数加法

DreamJudge 1475 大整数乘法

🧊🧊🧊4.2 Java解法

🧊🧊🧊4.3 C/C++解法


🧊🧊🧊4.1 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 大整数加法

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

DreamJudge 1475 大整数乘法

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.*

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(); //比较是否相等

参考代码:

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解法!!!

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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Qt如何调取打印机
  • 关于xilinx的FFTIP的使用和仿真
  • JAVA面试汇总
  • c++ opencv与Tesseract文字提取
  • 基于华为atlas的皮带跑偏、空载、堆煤、启停探索
  • vue-cron-builder一个相对简易的cron表达式生成插件UI管理jsvascript
  • Stability AI发布了单目视频转4D模型的新AI模型:Stable Video 4D
  • 数据结构:二叉树的广度优先遍历与深度优先遍历(递归方法)。C++及其新特性分别实现
  • Apache Tomcat 信息泄露漏洞CVE-2024-21733、CVE-2024-24549和CVE-2024-34750排查处理
  • Matlab2021b通过CNN、CNN-LSTM模型实现对声音信号的二分类与四分类
  • HTML静态网页成品作业(HTML+CSS)——安徽宣笔设计制作(5个页面)
  • 使用 ESP32 和 TFT 屏幕显示实时天气信息 —— 基于 OpenWeatherMap API
  • 微服务架构设计中的常见的10种设计模式
  • vuex的原理和使用方法
  • UniFab 是一款由人工智慧驅動的視訊增強器+ crack
  • 【Leetcode】101. 对称二叉树
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 2017前端实习生面试总结
  • Angularjs之国际化
  • Centos6.8 使用rpm安装mysql5.7
  •  D - 粉碎叛乱F - 其他起义
  • JavaScript对象详解
  • JavaScript学习总结——原型
  • JS专题之继承
  • Linux后台研发超实用命令总结
  • Python3爬取英雄联盟英雄皮肤大图
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • SpingCloudBus整合RabbitMQ
  • Web Storage相关
  • 从零搭建Koa2 Server
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 巧用 TypeScript (一)
  • 为视图添加丝滑的水波纹
  • 用element的upload组件实现多图片上传和压缩
  • 智能网联汽车信息安全
  • 如何用纯 CSS 创作一个货车 loader
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #NOIP 2014#Day.2 T3 解方程
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • $.ajax中的eval及dataType
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (四)图像的%2线性拉伸
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (一)WLAN定义和基本架构转
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET设计模式(11):组合模式(Composite Pattern)
  • [ linux ] linux 命令英文全称及解释
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [BZOJ1008][HNOI2008]越狱