P1530 分数化小数 Fractions to Decimals【洛谷算法习题】
P1530 分数化小数 Fractions to Decimals网页链接P1530 分数化小数 Fractions to Decimals题目描述写一个程序输入一个形如N D \dfrac{N}{D}DN​的分数输出它的小数形式。如果小数有循环节的话把循环节放在一对圆括号中。例如1 3 0.33333333 … \dfrac{1}{3}0.33333333\ldots31​0.33333333…写成0. ( 3 ) 0.(3)0.(3)41 333 0.123123123 … \dfrac{41}{333} 0.123123123\ldots33341​0.123123123…写成0. ( 123 ) 0.(123)0.(123)整数x xx写成x .0 x.0x.0。输入格式输入包含两个整数N NN和D DD1 ≤ N , D ≤ 10 5 1 \leq N,D \leq 10^51≤N,D≤105。输出格式输出按照上面规则计算出的小数表达式。如果结果长度大于76 7676每行输出76 7676个字符。输入输出样例 #1输入 #145 56输出 #10.803(571428)说明/提示翻译来自NOCOWUSACO 2.4解题思路本题是模拟长除法 循环节检测的经典题型核心是通过记录每次除法后的余数来定位循环节的起点和长度并按要求格式化输出。1. 问题等价转化分数转小数整数部分为⌊ N / D ⌋ \lfloor N/D \rfloor⌊N/D⌋若整除则补.0。小数部分通过不断将余数乘10 1010后除以D DD获得每一位。有限与循环若分母D DD的所有质因子只包含2 22和5 55则小数有限直接除尽即可。否则为无限循环小数循环节从某次出现重复余数时开始。循环节定位在模拟除法时用数组bk[x]记录余数x xx实际上是当前被除数n nn即上一轮余数乘10 1010首次出现的位置已输出的小数位数。当同一个被除数再次出现时两次出现之间的部分即为一个循环节。2. 算法实现预处理与输出整数部分计算q N / D输出q.。若N % D 0补0后直接结束。初始化计数器v已输出字符数用于控制每行76 7676字符的换行。判断有限小数将D DD反复除以2 22和5 55若最终变为1 11则小数有限。有限情况下模拟除法直接逐位输出直到余数为0 00无需括号。无限循环小数处理模拟长除法每次n (n % d) * 10商digit n / d保存到数组a用bk[n]记录当前商的位置z。若某个n已经记录过说明循环开始循环节起点flag bk[n]。输出时在位置flag前输出(然后依次输出a[1..z]最后补)。其间通过v累计字符数每76 7676个字符输出一次换行。注意整数部分和小数点也计入总长度开头输出q.时已累加相应字符数。3. 复杂度分析时间复杂度每位小数一次除法最长循环节不超过D DD余数最多D DD种D ≤ 10 5 D \le 10^5D≤105总时间O ( D ) O(D)O(D)非常快。空间复杂度O ( D ) O(D)O(D)用于记录余数首次出现位置的数组10 5 10^5105规模完全可行。总结模拟手动长除法的过程利用余数判重找到循环节。有限小数直接输出无限小数精确标记循环起止并添加括号。特别需要注意输出格式每行不超过76 7676个字符。代码简要说明读入与整数部分输出用scanf读取N , D N, DN,Dprintf输出整数部分和小数点并初始化字符计数v。有限小数判断提取D DD中所有2 22和5 55因子若剩余为1 11则进入有限分支直接逐位输出。无限循环小数记录初始化bk数组全0 00z记录已存小数位数。当bk[(n % d) * 10]为空时计算商存入a[z]标记bk[当前被除数] z。一旦发现重复记录循环起点flag。格式化输出遍历i从1 11到z在i flag时输出(并更新计数v。每输出一个数字检查(i v) % 76 0则换行。最后输出)并换行。代码内容#includebits/stdc.husingnamespacestd;#defineendl\ntypedeflonglongll;typedefunsignedlonglongull;typedefvectorvectorllvvt;typedefpairll,llpll;constll N1e310;constll INF1e18;constll M1e610;constll mod1e97;ll n,d,z0,flag,v,a[110000],bk[1100000];intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);scanf(%lld%lld,n,d);printf(%lld.,n/d);if(n%d0){printf(0);return0;}ll td;while(t%50)t/5;while(t%20)t/2;if(t1){while(n%d!0){n(n%d)*10;printf(%lld,n/d);}}else{ll qn/d;v;if(!q)v;while(q){q/10;v;}while(!bk[(n%d)*10]){n(n%d)*10;a[z]n/d;bk[n]z;}flagbk[(n%d)*10];for(ll i1;iz;i){if(iflag){printf(();v;}printf(%lld,a[i]);if((iv)%760)printf(\n);}printf()\n);}return0;}

相关新闻

从零构建数据处理系统:数据解析与内容生成技术实践

从零构建数据处理系统:数据解析与内容生成技术实践

在实际开发中,我们经常需要处理来自不同来源的数据,这些数据可能包含各种格式的标题、正文、关键词和描述信息。本文将以一个示例项目为背景,展示如何从零开始构建一个数据解析和处理系统,该系统能够接收结构化的输入数据&#xf…

2026/10/17 8:27:03 阅读更多 →
AI Agent架构设计:从感知到执行的智能体实现

AI Agent架构设计:从感知到执行的智能体实现

1. 从架构图开始的AI Agent认知革命去年我在团队内部做技术分享时,画了张AI Agent的架构草图,没想到这张随手绘制的示意图后来被疯狂转发。很多同行反馈说,这张图让他们第一次真正理解了AI Agent的运作逻辑。今天我就来完整拆解这张架构图背后…

2026/10/16 7:30:27 阅读更多 →
标注工具对比评测|Label Studio vs Doccano vs CVAT|效率提升3-5倍

标注工具对比评测|Label Studio vs Doccano vs CVAT|效率提升3-5倍

摘要:标注工具对比评测:Label Studio vs Doccano vs CVAT三大主流工具功能、效率、适用场景对比。Label Studio通用多模态标注;Doccano专注文本标注效率高;CVAT适合计算机视觉标注。本文从功能、学习成本、协作能力、导出格式等维度全面对比,帮你选对工具提升3-5倍效率。 …

2026/10/15 22:44:00 阅读更多 →

最新新闻

Flutter跨平台开发实战:鸿蒙适配洗衣房打卡应用全流程

Flutter跨平台开发实战:鸿蒙适配洗衣房打卡应用全流程

大学宿舍楼的洗衣房,永远是一场没有硝烟的战争。高峰期洗衣机全满,有人把衣服丢进去就忘了取,后边排队的人只能干瞪眼。某高校的洗衣房负责人找过来,说想做一个打卡小应用——让同学用手机记录洗衣机的使用开始和结束时间&#xf…

2026/10/17 21:23:32 阅读更多 →
密码学基础算法实战指南:对称加密、非对称加密、哈希与MAC的选型与落地

密码学基础算法实战指南:对称加密、非对称加密、哈希与MAC的选型与落地

1. 项目概述:这套算法体系到底在解决什么问题接手过几个带用户体系和数据交换的项目之后,我最大的感受是:密码学算法不是数学课上的抽象概念,而是每个开发者迟早要面对的工程选型。APP登录、Web后台、小程序、服务间接口通信&…

2026/10/17 21:23:32 阅读更多 →
Java实现HmacSHA256加密:从接口签名翻车到工程实践

Java实现HmacSHA256加密:从接口签名翻车到工程实践

1. 从一个接口签名翻车现场说起去年帮一个做支付对接的朋友排查线上问题,对方技术负责人甩过来一句:“你们回调过来的签名,我们验不过。”当时第一反应是密钥配错了,结果两边把密钥贴出来一比对,一模一样。再查参数拼接…

2026/10/17 21:23:32 阅读更多 →
沙盒隔离实战:Sandboxie安装配置与疑难排障全攻略

沙盒隔离实战:Sandboxie安装配置与疑难排障全攻略

1. 沙盒到底是什么:先搞懂Sandboxie隔离的逻辑很多人第一次听说沙盒(Sandbox),脑子里冒出来的画面是:一个装着程序的大盒子里,程序在里面怎么折腾都出不来,关掉盒子之后一切恢复原样。这个比喻方…

2026/10/17 21:23:32 阅读更多 →
卡尔曼滤波实战:从状态空间模型到Q/R参数调优

卡尔曼滤波实战:从状态空间模型到Q/R参数调优

做时序分析的人,迟早会撞上卡尔曼滤波。这个算法在状态空间模型里几乎就是“下篇”的代名词:上一篇文章我们把状态空间模型的框架搭好,状态方程、观测方程都摆出来了,接下来最核心的问题就是——怎么从一堆带噪声的观测里&#xf…

2026/10/17 21:23:32 阅读更多 →
韩语词汇表构建与评测:从词表设计到分词、拼写检查与检索召回

韩语词汇表构建与评测:从词表设计到分词、拼写检查与检索召回

简介:这份韩语词汇表资源面向韩语学习者、语言研究者及需要构建韩语词典数据的开发者,提供从原始词条到结构化词典的完整数据集合。资源包共5个文件,以json词典数据、txt单词列表和md说明文档为主,压缩包约28.37MB,jso…

2026/10/17 21:22:31 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →