恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

PTA基础编程题目集 7-24约分最简分式(C++语言实现)

  • 首页
  • 资讯中心
  • /
  • PTA基础编程题目集 7-24约分最简分式(C++语言实现)

相关资讯

FIFA 23实时编辑器完整指南:解锁游戏无限可能 2026/8/9 23:19:59
如何快速上手Claude Code插件平台:新手终极安装指南与实用技巧 2026/8/9 23:19:59
AsyncAPI specification生态系统:探索丰富的工具与资源 2026/8/9 23:19:59

最新资讯

CoSbTe节点线半金属的电子结构与物理性质
如何快速优化macOS鼠标体验:Mac Mouse Fix完整配置指南
数据库索引优化与慢查询分析实战:升级前先做这几项确认
Go 系统编程与并发原语:流量上来前要补哪些防线
【Bug已解决】Llama3.2: Allow batch to have 解决方案
LLM 工具调用与 Function Calling 工:并发场景怎样设定保护边界

今日推荐

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南
告别语言障碍:KISS Translator 双语翻译插件终极指南
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

本周热门

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁
如何快速生成中国车牌图片:Python开源工具完整指南
当 LLM 遇见大文档:主流开源项目如何处理上下文超限

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

PTA基础编程题目集 7-24约分最简分式(C++语言实现)

发布时间:2026/8/9 23:19:59
PTA基础编程题目集 7-24约分最简分式(C++语言实现) 摘要本文是PTA编程题约分最简分式的题解涵盖题目描述、输入输出格式及C语言实现展示使用辗转相除法求最大公约数进行分数约分的算法。题目描述分数可以表示为分子/分母的形式。编写一个程序要求用户输入一个分数然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时不需要表达为整数又分数的形式即11/8还是11/8而当分子分母相等时仍然表达为1/1的分数形式。输入格式输入在一行中给出一个分数分子和分母中间以斜杠/分隔如12/34表示34分之12。分子和分母都是正整数不包含0如果不清楚正整数的定义的话。提示对于C语言在scanf的格式字符串中加入/让scanf来处理这个斜杠。对于Python语言用a,bmap(int, input().split(‘/’))这样的代码来处理这个斜杠。输出格式在一行中输出这个分数对应的最简分式格式与输入的相同即采用分子/分母的形式表示分数。如5/6表示6分之5。输入样例66/120输出样例11/20解题思路核心问题分析将给定分数约分为最简分式即分子和分母同时除以它们的最大公约数(GCD)。约分后分子与分母互质。算法原理使用欧几里得算法辗转相除法求两个数的最大公约数。算法核心gcd(a, b) gcd(b, a mod b)反复迭代直到余数为0此时的除数即为最大公约数。然后分子分母同除以该GCD即得最简分式。具体计算步骤以分子/分母格式读取输入的两个整数调用gcd函数计算分子和分母的最大公约数简化分子 原分子 ÷ 最大公约数简化分母 原分母 ÷ 最大公约数按分子/分母格式输出结果代码流程说明gcd函数定义使用辗转相除法循环计算最大公约数当b≠0时保存b到tempba%batemp继续迭代b0时返回a即为最大公约数主函数输入使用scanf(“%d/%d”, …)格式自动跳过斜杠读取分子分母计算最大公约数调用gcd(numerator, denominator)约分计算分子分母分别除以最大公约数格式化输出按分子/分母格式输出最简分式代码流程图是否开始定义gcd函数参数a和bb不等于0?辗转相除更新a和b返回a主函数输入分子分母调用gcd求最大公约数分子除以最大公约数分母除以最大公约数输出最简分数结束解题流程图输入分数形式的分子分母提取分子a和分母b调用辗转相除法求最大公约数当b不等于0时计算余数ra更新为bb更新为rb为0时a即为GCD新分子等于原分子除以GCD新分母等于原分母除以GCD输出最简分数形式代码部分实现#includeiostream#includecstdiousingnamespacestd;// 使用辗转相除法求两个数的最大公约数// 算法原理gcd(a, b) gcd(b, a mod b)直到余数为0此时的除数即为最大公约数intgcd(inta,intb){while(b!0){inttempb;// 保存当前的除数ba%b;// 用当前除数除当前被除数得到新的余数atemp;// 将原除数作为下一轮的被除数}returna;// 当b为0时a即为最大公约数}intmain(){intnumerator,denominator;// 以分子/分母的格式输入分数scanf中的/会被自动跳过scanf(%d/%d,numerator,denominator);// 求出分子和分母的最大公约数intcommon_divisorgcd(numerator,denominator);// 分子分母同时除以最大公约数得到最简分式intsimplified_numnumerator/common_divisor;intsimplified_dendenominator/common_divisor;// 输出最简分式coutsimplified_num/simplified_denendl;return0;}

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号