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

UVa 275 Expanding Fractions

题目分析本题要求计算两个正整数的除法的小数展开形式其中分子小于分母分母小于100010001000。输入以0 0结束。对于每个分数需要输出其小数部分从小数点开始并且如果小数是有限的即能够整除则输出完整的小数部分。如果小数是无限的则输出到循环节第一次重复之前的数字并指出循环节长度。循环节必须是最短的。每行最多输出505050个字符包括小数点。每个测试用例的输出后跟一个空行。示例分析以输入3 7为例3/70.428571428571…3/7 0.428571428571\ldots3/70.428571428571…循环节为428571428571428571长度为666因此输出.428571 The last 6 digits repeat forever.以输入345 800为例345/8000.43125345/800 0.43125345/8000.43125是有限小数输出.43125 This expansion terminates.解题思路核心数学原理本题的核心是长除法模拟竖式除法和循环节检测。在长除法过程中每一步的余数决定了后续的小数位。根据抽屉原理鸽笼原理因为分母m1000m 1000m1000余数的取值范围是000到m−1m-1m−1共mmm种可能。因此如果某个余数重复出现则后续的小数序列将开始循环。如果余数变为000则除法终止小数是有限的。算法步骤初始化设置当前余数remainder n。记录余数出现的位置使用一个数组position记录每个余数第一次出现时的位数索引。标记余数是否出现过使用一个布尔数组appeared。模拟长除法每次将余数乘以101010然后除以分母得到当前小数位digit (remainder * 10) / m。更新余数remainder (remainder * 10) % m。如果remainder之前出现过则找到了循环节循环节从该余数第一次出现的位置开始到当前位置结束。如果remainder等于000则除法终止。输出先输出小数点.。每505050个字符换行注意小数点在行首也算一个字符。根据是否终止输出对应的提示信息。为什么这种方法能保证最短循环节由于我们从第一个小数位开始模拟并记录每个余数第一次出现的位置当余数重复时从该余数第一次出现的位置到当前位置之间的数字序列就是最小循环节。这是因为余数的重复直接决定了后续小数位的重复而第一次重复的余数位置对应着循环节的最早起点。复杂度分析时间复杂度O(m)O(m)O(m)因为最多模拟mmm步就会找到循环节或终止。空间复杂度O(m)O(m)O(m)用于存储余数出现的位置和标记数组。代码实现// Expanding Fractions// UVa ID: 275// Verdict: Accepted// Submission Date: 2016-05-11// UVa Run Time: 0.000s//// 版权所有C2016邱秋。metaphysis # yeah dot net#includebits/stdc.husingnamespacestd;intn,m;vectorintdigits(1001);// 存储小数位的数字vectorintposition(1001);// 记录每个余数第一次出现的位置索引vectorboolappeared(1001);// 标记余数是否出现过intmain(intargc,char*argv[]){cin.tie(0);cout.tie(0);cout.sync_with_stdio(false);while(cinnm,nm){// 初始化标记数组fill(appeared.begin(),appeared.end(),false);intindex0;// 当前小数位的索引// 当余数未出现过且余数不为0时继续模拟while(!appeared[n]n0){appeared[n]true;// 标记当前余数已出现digits[index]10*n/m;// 计算当前小数位position[n]index;// 记录该余数出现的位置n10*n%m;// 更新余数}// 输出小数点cout.;// 输出所有已计算的小数位for(inti0;iindex;i){// 每50个字符换行包括前面的小数点但这里i从0开始if(i%5049)cout\n;coutdigits[i];}// 判断是有限小数还是无限循环小数if(n0)// 余数为0说明除法终止cout\nThis expansion terminates.\n\n;else// 循环节的长度 当前索引 - 循环节开始的位置cout\nThe last (index-position[n]);cout digits repeat forever.\n\n;}}return0;}总结本题的关键在于理解长除法过程中余数与循环节的关系。通过模拟除法并记录余数出现的位置可以高效地找到最短循环节。由于分母的最大值为999999999算法的复杂度非常低可以轻松通过。

相关文章:

UVa 275 Expanding Fractions

题目分析 本题要求计算两个正整数的除法的小数展开形式,其中分子小于分母,分母小于 100010001000。输入以 0 0 结束。 对于每个分数,需要输出其小数部分(从小数点开始),并且: 如果小数是有限的&…...

安卓HTTPS抓包证书信任问题深度解析与系统级迁移方案

1. 为什么安卓抓包总在“证书信任”这关卡住?——一个被低估的系统级权限问题你是不是也经历过:Fiddler、Charles 或 mitmproxy 在电脑上配置得严丝合缝,手机 Wi-Fi 代理一设就通,HTTP 流量哗哗跑,可一到 HTTPS&#x…...

TrafficMonitor插件完整指南:让你的Windows任务栏变身全能信息中心

TrafficMonitor插件完整指南:让你的Windows任务栏变身全能信息中心 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 还在为Windows任务栏功能单一而烦恼吗&#xff1f…...

从开发者反馈看taotoken api密钥管理与访问控制功能的实用性

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从开发者反馈看taotoken api密钥管理与访问控制功能的实用性 在构建基于大模型的应用时,API密钥的管理与访问控制是保障…...

Ventoy终极指南:一键制作万能启动盘的完整教程

Ventoy终极指南:一键制作万能启动盘的完整教程 【免费下载链接】Ventoy A new bootable USB solution. 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy 你是否厌倦了每次安装系统都要重新格式化U盘?Ventoy是一款革命性的开源启动盘制作…...

Windows网络音频革命:Scream虚拟声卡完整指南

Windows网络音频革命:Scream虚拟声卡完整指南 【免费下载链接】scream Virtual network sound card for Microsoft Windows 项目地址: https://gitcode.com/gh_mirrors/sc/scream 还在为有线音频的束缚而烦恼吗?想象一下,将你的Window…...

从零到精通:3分钟掌握gdown,让Google Drive下载不再是噩梦

从零到精通:3分钟掌握gdown,让Google Drive下载不再是噩梦 【免费下载链接】gdown Google Drive public file downloader when curl/wget fails. 项目地址: https://gitcode.com/gh_mirrors/gd/gdown 还在为Google Drive大文件下载失败而烦恼吗&a…...

揭秘K12课堂AI转型真相:3个被90%学校忽略的PlayAI部署陷阱及72小时应急修复指南

更多请点击: https://intelliparadigm.com 第一章:PlayAI教育领域应用案例 PlayAI 作为面向教育场景的轻量级AI交互平台,已在多个教学实践中展现出显著的适配性与可扩展性。其核心优势在于无需深度编程基础即可构建个性化学习路径、实时学情…...

构建AI模型实时反馈回路:从概念漂移到持续进化

1. 项目概述:当AI模型不再“一锤定音”,而是持续呼吸、自我校准你有没有遇到过这样的情况:一个花了三个月调优的推荐模型,上线首周点击率提升12%,第二周开始缓慢下滑,到第四周几乎回到基线水平?…...

第38天:SQL详解之DML

Python学习100天(从入门到精通系列文章) 文章目录 Python学习100天(从入门到精通系列文章) 前言 一、基本查询与投影 1.1 查询所有列 1.2 投影与别名 二、数据筛选(WHERE 子句) 2.1 等值与比较筛选 2.2 多条件组合(AND / OR) 2.3 范围查询(BETWEEN) 2.4 CASE 表达式与…...

【Midjourney企业版落地实战指南】:从0到1搭建合规、可控、可审计的AI设计中台

更多请点击: https://intelliparadigm.com 第一章:【Midjourney企业版落地实战指南】:从0到1搭建合规、可控、可审计的AI设计中台 企业引入Midjourney需突破个人账号局限,构建具备身份鉴权、用量管控、内容水印、操作留痕与策略审…...

FANUC机器人摆焊+电弧跟踪实战:从参数详解到避坑指南(ROBOGUIDE仿真)

FANUC机器人摆焊与电弧跟踪协同优化实战解析 在厚板焊接与复杂轨迹加工领域,正弦摆焊与电弧跟踪技术的协同应用已成为提升焊接质量的关键手段。资深工程师们常常面临这样的挑战:如何在坡口焊接中精准配置那二十余项电弧传感器参数,使机器人既…...

嵌入式工程师职业发展路径:从功能实现到领域专家的价值跃迁

1. 从迷茫到清晰:一个嵌入式工程师的三年复盘与突围 三年前,我带着对电路板和代码的热情,一头扎进了嵌入式开发的世界。和很多新人一样,当时满脑子都是做出“改变世界”的酷产品,想象着自己设计的设备在千家万户、工厂…...

深度学习实验十大模式与反模式:工业级可复现性实战指南

1. 项目概述:为什么这十个模式与反模式值得你花一整周反复咀嚼 “Ten Patterns and Antipatterns of Deep Learning Experimentation”——这个标题乍看像一篇学术综述,但在我带过27个工业级AI项目、亲手调试过412次模型训练失败日志、在三个不同行业的M…...

安检机图像处理踩坑实录:从条纹校正到物质分类,那些论文里不会告诉你的细节

安检图像处理实战:从条纹校正到物质分类的工程化解决方案 在安检设备研发领域,双能X射线成像技术已经成为行业标配,但教科书和论文中的理想模型往往与工程实践存在巨大鸿沟。作为参与过多个机场安检系统落地的工程师,我深刻体会到…...

G-Helper终极指南:告别Armoury Crate臃肿体验的3步高效方案

G-Helper终极指南:告别Armoury Crate臃肿体验的3步高效方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenboo…...

Keil编译器数据类型详解与嵌入式开发实践

1. 变量范围查询指南:Keil编译器数据类型详解 作为一名嵌入式开发老手,我深知在Keil环境下编程时,准确掌握各种数据类型的取值范围是多么重要。今天就来系统梳理C51/C166/C251编译器中的数据类型范围问题,这些经验都是我在实际项目…...

终极指南:5步永久免费解锁Cursor AI Pro功能,告别试用限制

终极指南:5步永久免费解锁Cursor AI Pro功能,告别试用限制 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve r…...

Unity图表性能优化:从折线图到饼图的底层实现与避坑指南

1. 为什么Unity里做图表不是“加个UI控件”就完事了? 在Unity项目里,当策划甩来一句“这个数据面板加个折线图展示用户留存率”,或者美术提出“战斗结算页需要动态饼图显示伤害来源分布”,很多开发者第一反应是:去Asse…...

别再混淆EbN0和SNR了!手把手教你用Python验证MQAM误码率公式(附完整代码)

从理论到实践:用Python彻底解析EbN0与SNR的误码率验证 通信仿真中经常遇到一个经典问题:为什么我的误码率曲线和理论公式对不上?这个问题困扰过无数通信工程师和研究者。本文将带你从基础概念出发,通过Python代码实现&#xff0c…...

从霍金难题到MESI协议:原子操作性能瓶颈的硬件根源与优化实践

1. 项目概述:从霍金的难题到现代CPU的协同困境 如果你写过并发程序,或者研究过Linux内核的同步机制,你一定对“原子操作”和“缓存一致性”这两个词不陌生。我们常常被告知,原子操作是昂贵的,因为它需要“锁总线”或者…...

Windows平台PDF处理终极方案:告别编译烦恼,三分钟快速部署

Windows平台PDF处理终极方案:告别编译烦恼,三分钟快速部署 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 还在为Windows上…...

轨迹在线识别导向的3D折线焊缝机器人摆动GMAW实时跟踪系统【附程序】

✨ 长期致力于3D折线焊缝、机器人、GMAW、轨迹在线识别、焊缝跟踪研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)基于激光位移传感与密度聚类点云在线…...

WinCC Runtime Advanced项目实战:从TIA Portal组态到PC Station部署的完整流程解析

WinCC Runtime Advanced项目实战:从TIA Portal组态到PC Station部署的完整流程解析 在工业自动化领域,HMI系统的部署往往是项目落地的最后关键一步。对于习惯了传统HMI硬件的工程师来说,首次接触基于PC的WinCC Runtime Advanced解决方案时&a…...

5个实战技巧:Unlock-Music浏览器端音乐解密技术深度解析

5个实战技巧:Unlock-Music浏览器端音乐解密技术深度解析 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: htt…...

别再乱关防火墙了!ESXi 7.0/8.0 安全开放自定义端口的保姆级教程(附配置文件详解)

ESXi防火墙精细化管控:安全开放自定义端口的工程实践 在虚拟化环境中,ESXi主机作为承载业务系统的核心基础设施,其网络安全防护的重要性不言而喻。许多管理员在面对需要开放非标准端口的场景时,往往陷入两难:要么粗暴关…...

智能安全监测之高空作业安全带识别图像数据集 施工工地安全帽识别 防护服佩戴识别 反光衣图像识别数据集 穿戴佩戴服装图像第10242期

线束计算机视觉数据集简介 类别Classes (4) 类别(4) Harness 安全带 Head 头部 Helmet 头盔 Person 人线束计算机视觉数据集核心信息表信息类别具体内容数据集类别目标检测类计算机视觉数据集,包含 4 个核心类别:安全带&#xff0…...

零售业的AI Agent:个性化推荐与库存管理

从零落地零售业AI Agent:打通个性化推荐与智能库存管理的全链路实践 副标题:技术栈:LangChain + 向量数据库 + 时序预测 + 多Agent协同,降本提效30%+的可落地方案 第一部分:引言与基础 1.1 摘要/引言 不知道你有没有过这样的体验:刚在电商平台买了一罐婴儿奶粉,接下来…...

3分钟快速优化Windows 11:免费开源工具Win11Debloat完全指南

3分钟快速优化Windows 11:免费开源工具Win11Debloat完全指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter …...

3个关键技巧:用ProperTree告别Plist编辑的繁琐与混乱

3个关键技巧:用ProperTree告别Plist编辑的繁琐与混乱 【免费下载链接】ProperTree Cross platform GUI plist editor written in python. 项目地址: https://gitcode.com/gh_mirrors/pr/ProperTree 你是否曾经面对macOS配置文件时感到手足无措?那…...