C语言 最简分式

C语言 最简分式Description 我们知道 5 3 1 3 5 称等号后面的式子为最简分式 也就是说 在分式中 分子一定要小于分母 而且分子 分母是互质的 请写一个程序 对于用户输入的一个合法分式 输出其约简之后的结果 Input 输入有多行 每行是 m n 的格式表示的一个分式 其中 m 和 n 都是 int 类型范围内的正整数 输入至 EOF 结束 Output 输出的行数与输入一致 且每行输出与上述输入一一对应 如果约简后 分子部分是 0 则只输出整数部分 如果整数部分是 0 则按照 j k 的格式输出 如果整数部分不

Description
我们知道,5/3=1+3/5,称等号后面的式子为最简分式。也就是说,在分式中,分子一定要小于分母,而且分子、分母是互质的。请写一个程序,对于用户输入的一个合法分式,输出其约简之后的结果。

Input
输入有多行,每行是“m/n”的格式表示的一个分式,其中m和n都是int类型范围内的正整数。
输入至EOF结束。




Output
输出的行数与输入一致,且每行输出与上述输入一一对应。

如果约简后,分子部分是0,则只输出整数部分。

如果整数部分是0,则按照“j/k”的格式输出;

如果整数部分不是0,则按照“i+j/k” 的格式输出约简后的结果。

其中i、j和k分别是约简后的整数部分、分子部分和分母部分。

Sample Input
100/56
8/4
3/5






Sample Output
1+11/14
2
3/5






#include 
     int gcd(int a, int b) { 
    return b == 0 ? a : gcd(b, a % b); //找最大公约数 } int main() { 
    int m,n,a,x; while(scanf("%d/%d",&m,&n)!=EOF) { 
    if(m%n==0) printf("%d\n",m/n); else if(m==0) printf("0\n"); else { 
    a=m/n; x=gcd(m,n); if(x==1) { 
    if(a!=0) { 
    m=m-a*n; printf("%d+%d/%d\n",a,m,n); } else printf("%d/%d\n",m,n); } else { 
    if(a!=0) { 
    m=m-a*n;} while(m%x==0 && n%x==0) { 
    m/=x; n/=x; } if(a==0) { 
    printf("%d/%d\n",m,n); } else printf("%d+%d/%d\n",a,m,n); } } } } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202333.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午7:22
下一篇 2026年3月20日 上午7:23


相关推荐

  • 机器学习算法(15)之Xgboost算法

    机器学习算法(15)之Xgboost算法前言:前一篇文章对boosting的两个方法做了阐述,这篇文章将会是对前两篇文章的深化,谈的是一个更加优化了的boostIng算法,自从2014年9月份在Kaggle的希格斯玻色子机器学习大赛中夺魁以来,XGBoost与深度学习两个算法垄断了Kaggle大赛的大部分冠军。现在Kaggle大赛的情况基本是这样的,凡是非结构化数据相关,比如语音、图像,基本都是深度学习获胜,凡是结构化数据上…

    2022年4月29日
    55
  • Stimulsoft 仪表板.JS 2022.2.1

    Stimulsoft 仪表板.JS 2022.2.1Stimulsoft仪表板.JS2022.2.1  二维码视觉设计-使用组件编辑器中的属性定义各种图形元素的颜色和形状。  仪表板的新交互式按钮组件-允许您使用脚本平台语言或Blockly执行脚本。它包括几个可视化设置,这些设置取决于按钮的状态。  仪表板的新卡片组件-此分析组件允许您将数据分组、处理和显示为仪表板中的卡片。它支持所有类型的图形表示,包括集群列、色标、指标、气泡和迷你图。它能够显示文本、数值和图像。  仪表板的新图形堆叠图表类型-此图表用于显示值在整体指标中的

    2022年7月26日
    7
  • CEGUI build

    CEGUI build     Everygamesneed2dguisystemforplayerinterface,asweknownasOGRE3drenderenginepronouncethatitwilluseCEGUIcomponentforits2dpart,becauseCEGUIisveryprofessionalandpo

    2022年7月23日
    10
  • java auth fail_java连接zookeeper报 KeeperErrorCode = AuthFailed

    java auth fail_java连接zookeeper报 KeeperErrorCode = AuthFailedjava 连接 zookeeper 报 KeeperErrorC AuthFailed 问题出现的环境背景及自己尝试过哪些方法 zookeeper 已经启动相关代码 importjava util HashMap importjava util List importjava util Map importjava util Properties importkafka consumer C

    2026年3月20日
    2
  • 达梦数据库查询语句「建议收藏」

    达梦数据库查询语句「建议收藏」DMSQL简介DM_SQL语言是一种介于关系代数与关系演算之间的语言,其功能主要包括数据定义、查询、操纵和控制四个方面,通过各种不同的SQL语句来实现。按照所实现的功能,DM_SQL语句分为以下几种:用户、模式、基表、视图、索引、序列、全文索引、存储过程和触发器的定义和删除语句,基表、视图、全文索引的修改语句,对象的更名语句;查询(含全文检索)、插入、删除、修改语句;数据库安全语句…

    2025年10月7日
    2
  • Windows 编程(多进程)

    Windows编程(多进程)进程组成:操作系统用来管理进行的内核对象内核对象也是系统用来存放关于进程的统计信息的地方.内核对象是操作系统内部分配的一个内存块,该内存块是一种数据结构,其成员负

    2021年12月13日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号