Rational Arithmetic
📑打牌 : da pai ge的个人主页
🌤️个人专栏 : da pai ge的博客专栏
☁️宝剑锋从磨砺出,梅花香自苦寒来
☁️有理数运算
☁️【题目解析】
☁️【解题思路】
☁️【示例代码】
import java.util.*;
// s and the denominators
class Rational{
private long numerator; // 分子
private long denominator; // 分母
private long integer; // 整数部分
private boolean negetive = false; // 负数
private boolean isZero = false; // 分母为零
private long totalNumerator; // 参与运算的分子:整数+原来分子
public static long paraseNumerator(String s){
//只需从字符串中将分子截取出来
return Long.parseLong(s.substring(0, s.indexOf('/')));
}
public static long paraseDenominator(String s){
//只需从字符串中将分子截取出来
return Long.parseLong(s.substring(s.indexOf('/')+1, s.length()));
}
public Rational(long n, long d){
// 在输入的时候分母永远不可能为0,但是经过计算之后分母可能会为0
if(0 == d){
isZero = true;
return;
}
// 如果分子小于0,表示为负数
if(n < 0){
negetive = !negetive;
}
// 在输入的时候,分母永远不可能小于0,但是经过计算之后分母也可能会小于0
if(d < 0){
negetive = !negetive;
}
// 如果输入是假分数,需要将其调整为真分数,比如:5 / 3 ===> 1 2/3
integer = n / d;
numerator = n - integer * d;
denominator = Math.abs(d);
// 如果分数不是最简的形式,需要将其约分为最简的形式,比如:10 / 15--->2/3
// 在分子和分母的基础之上分别处以分子和分母的最大公约数
if(numerator > 1 || numerator < -1){
long gcd = calcGCD(Math.abs(numerator), denominator);
if(gcd > 0){
numerator /= gcd;
denominator /= gcd;
相关文章:
Rational Arithmetic
📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 ☁️有理数运算 实现对两个有理数的…...
文心一言4.0(ERNIE-Bot-4)申请方法及简单调用代码示例
10月17日过后,估计很多人会看到类似的新闻,如图: 我看到这则新闻也是觉得非常感兴趣,于是本着“百闻不如一见”的实事求是的态度检索如何申请,没想到还真找到了ERNIE-Bot-4(俗称:文心一言4.0&a…...
年终好价节买什么好?这些数码好物闭眼入
大家是不是都没听说过好价节?直截了当地说,这其实就是原先的双十二购物狂欢节,只不过给它起了个新名字。不过,今年毕竟是首次改名,因此淘宝年终好价节的各种优惠,仍然是我们值得期待的!作为年前…...
webpack对项目进行优化
对项目进行优化是提高性能和效率的关键,以下是一些实用的Webpack优化技巧: 代码拆分(Code Splitting):将代码拆分为多个小块,按需加载。通过配置splitChunks插件,可以将公共代码提取到单独的文件…...
Python edge-tts库全部声音模型一览表
下面是edge-tts的声音模型,zh-CN为中文语音模型 Name: af-ZA-AdriNeural Gender: Female Name: af-ZA-WillemNeural Gender: Male Name: am-ET-AmehaNeural Gender: Male Name: am-ET-MekdesNeural Gender: Female Name: ar-AE-FatimaNeural Gender: Female N…...
网络编程相关面试题
目录 1.请解释一下什么是TCP协议的三次握手?2.TCP协议使用什么机制确保数据包的顺序和完整性?3.什么是UDP协议?它与TCP协议有什么不同?4.请解释一下什么是IP地址?为什么需要它?5.请解释一下什么是端口&…...
TCP_NODELAY与TCP通信效率
最近做tcp通信速度测试:主要流程如下所示: //client: while() { send data... recv data... //阻塞 }//server: while() { recv data... send data... } 当每次send数据量较小时,速度极慢!而send数据量较大时速度尚可。两者速度…...
ZooKeeper的分布式锁---客户端命令行测试(实操课程)
本系列是zookeeper相关的实操课程,课程测试环环相扣,请按照顺序阅读测试来学习zookeeper。阅读本文之前,请先阅读----zookeeper 单机伪集群搭建简单记录(实操课程系列)。 阅读本文之前,请先阅读…...
工业4.0时代:图像识别驱动制造业智能生产的未来
在数字化革命的大潮中,工业4.0的到来标志着制造业将迎来全新的智能化时代。其中,图像识别技术作为一项核心技术,正引领着制造业实现了前所未有的智能生产。本文将深入探讨工业4.0时代下,图像识别是如何驱动制造业实现智能生产&…...
ROS vscode使用基本配置
1、创建ros工作空间 2、启动 vscode 3、vscode 中编译 ros ctrl shift B 调用编译,选择:catkin_make:build 修改.vscode/tasks.json 文件 4、 创建 ROS 功能包 选定 src ---> create catkin package 依次设置包名、添加依赖 5、C 实现 在功能包的 src 下…...
Android、ESP32、ESP8266的mqtt通信
Android activity_main <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools"http:/…...
Hive安装与配置
你需要掌握: 1.Hive的基本安装; 2.Mysql的安装与设置; 3.Hive 的配置。 注意:Hive的安装与配置建立在Hadoop已安装配置好的情况下。 hadopp安装与配置 Hive 的基本安装 从 官网 下载Hive二进制包,下载好放在/op…...
vuejs: 解决浏览器切换页面后setInterval计时器停止执行的问题
setInterval定时器是基于当前页面的,如果切换到其他页面,定时器会被暂停。这是浏览器的一种优化措施,以减少不必要的性能消耗。 如果需要在切换页面后继续执行定时器,可以使用Web Worker,它是在后台运行的程序…...
基于Web邮箱的邮件系统
题目: 基于web的邮件收发系统设计与实现 摘 要 计算机的应用已经越来越广泛,它从产生到完善已经差不多有50年左右的历史,更新换代速度非常快,在人们生活、工作中都发挥了不可替代的作用,几乎所有行业都离不开它,已经成…...
【Java学习笔记】75 - 算法优化入门 - 马踏棋盘问题
一、意义 1.算法是程序的灵魂,为什么有些程序可以在海量数据计算时,依然保持高速计算? 2.拿老韩实际工作经历来说,在Unix下开发服务器程序,功能是要支持上千万人同时在线,在上线前, 做内测,一…...
第二十章 多线程
20.2创建线程 20.2.1继承Thread类 Thread类是Java.lang包中的一个类,从这个类中实例化的对象代表线程,程序员启动一个新线程需要建议Thread实例。 public class ThreadTest extedns Thread{} run方法格式: public void run(){} 20.1让线程循…...
vue2使用npm依赖包导出xlsx文件
1.下载依赖npm i xlsx 2.在根目录utils新建mergeXlxs.js /****/ import { utils, writeFile } from "xlsx";export default function mergeHeader(headers, data, datamerges, defaultTitle) {const ws utils.book_new();utils.sheet_add_aoa(ws, headers);//这里…...
java--多态
1.什么是多态 多态是在继承/实现的情况下的一种现象,表现为:对象多态、行为多态。 2.多态的具体代码体现 编译看左边,运行看右边 3.多态的前提 有继承/实现关系;存在父类引用子类对象;存在方法重写 4.多态的一个注…...
知识图谱06——将pdf中的表格(文字形式)保存至csv中
使用ubuntu22.04,anaconda 由于装环境装了一阵子,不确定装了哪些包了 可能的环境安装 conda install -c conda-forge pymupdf conda install -c conda-forge camelot-py conda install pandas #或者 pip install PyMuPDF pip install camelot-py[all] …...
一文教你使用Swagger---适合新手小白(结合实战)
1.什么是Swagger Swagger----在线自动生成接口文档,是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,可用于接口的文档在线自动生成以及功能测试。 2.Swagger与OpenAPI OpenAPI规范OpenAPI Specification以前叫…...
告别setData地狱!用miniprogram-computed给你的微信小程序组件加上计算属性
告别setData地狱!用miniprogram-computed给你的微信小程序组件加上计算属性 每次在小程序里处理复杂数据联动时,你是不是也经历过这样的痛苦?表单验证状态需要根据三个输入框内容实时更新,购物车总价要随着商品数量和优惠券动态计…...
OpenClaw隐私保护方案:Qwen3.5-9B本地处理医疗图片的10个细节
OpenClaw隐私保护方案:Qwen3.5-9B本地处理医疗图片的10个细节 1. 为什么选择本地化医疗图片处理 去年帮家人整理体检报告时,我遇到一个两难问题:既想用AI分析CT影像的异常阴影,又担心把敏感数据上传到第三方平台。这个矛盾促使我…...
Cursor根本无法调试C++
你知道吗?你的Cursor可能正在"假装"是VS Code,但它根本无法像VS Code一样正常调试C。项目里按下F5,弹出提示:“Windows C Debugging is supported only in Microsoft versions of VS Code。” 检查配置无误,…...
软考培训机构防套路手册:从师资甄别到合同陷阱的7个关键检查点
软考培训机构防套路手册:从师资甄别到合同陷阱的7个关键检查点 第一次报考软考的考生往往会被培训机构"包过""名师押题"的广告吸引,却不知道这个行业存在多少精心设计的消费陷阱。去年某考生花费6800元报名"保过班"&…...
Elsevier投稿状态监控插件:3分钟告别手动刷新的终极解决方案
Elsevier投稿状态监控插件:3分钟告别手动刷新的终极解决方案 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 你是否每天都要反复登录Elsevier投稿系统,只为查看那迟迟不来的审稿状态…...
覆盖数十个行业,GEO 如何帮不同赛道企业实现精准获客?
在 AI 搜索全面普及的当下,无论哪个行业的企业,都面临着同一个问题:如何让自己的产品与服务,在用户的 AI 搜索结果中被优先推荐、精准触达目标客户。GEO(AI 搜索生成引擎优化)的出现,为不同行业…...
OpenClaw × 88API:10 分钟搭好本地网关,解决 API 超时和多渠道切换(2026 完整教程)
你可能也踩过这些坑:项目快提测了,Claude API 突然超时,重试半天还是报错想临时换一个中转站兜底,结果又要改一遍 base_url、api_key、模型名一个渠道支持 Claude,不支持 Gemini;另一个支持 GPT,…...
突破视频内容壁垒:B站视频转文字的智能解决方案
突破视频内容壁垒:B站视频转文字的智能解决方案 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 在信息爆炸的时代,视频已成为知识传播…...
AI辅助开发:让快马AI理解并生成ccswitch工具的核心逻辑与UI管理代码
AI辅助开发:让快马AI理解并生成ccswitch工具的核心逻辑与UI管理代码 最近在开发一个网络切换工具ccswitch时,发现AI辅助开发能大幅提升效率。通过InsCode(快马)平台集成的AI模型,可以用自然语言描述需求,就能自动生成核心功能代码…...
