最简分式概念_怎样才算最简分式

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

2017年山科C语言期末考试
Problem L: 最简分式

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

Jetbrains全家桶1年46,售后保障稳定

Sample Output

1+11/14
2
3/5

ans:

#include<stdio.h>
#include<stdlib.h>

int getMin(int a,int b)
{ 
   
    if(a<b)return a;
    else   return b;
}

int main()
{ 
   
    int m,n;
    while(scanf("%d/%d",&m,&n)!=EOF){ 
   
        if(m%n==0){ 
   //最简单的情况,直接输出m/n
            printf("%d\n",m/n);
        }else if(m<n){ 
   //分子小于分母,分式形式,看是否要化为最简分式
            int min=getMin(m,n);
            for(int i=2;i<=min;i++){ 
   
                while(m%i==0&&n%i==0){ 
   
                    m/=i;
                    n/=i;
                }
            }
            printf("%d/%d\n",m,n);
        }else{ 
   //分子大于分母,拆分为一个整数加一个分式
            int len=0;
            while(m>n){ 
   
                len++;
                m-=n;
            }
            int min=getMin(m,n);
            for(int i=2;i<=min;i++){ 
   
                while(m%i==0&&n%i==0){ 
   
                    m/=i;
                    n/=i;
                }
            }
            printf("%d+%d/%d\n",len,m,n);
        }
    }
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • NOIP 2008 普及组 传球游戏「建议收藏」

    NOIP 2008 普及组 传球游戏「建议收藏」超时#include<bits/stdc++.h>usingnamespacestd;intn,m,ans;//第cnt次传球后,球在编号为x的同学手上voiddfs(intcnt,intx){ if(cnt==m){ if(x==0)ans++; return; } dfs(cnt+1,(x+1)%n); dfs(cnt+1,(x-1+n)%n); }intmain(){.

    2022年7月14日
    59
  • java 打包 jar包和war包的区别

    java 打包 jar包和war包的区别jar包:对于学习java的人来说应该并不陌生。我们也经常使用也一些jar包。其实jar包就是java的类进行编译生成的class文件就行打包的压缩包而已。里面就是一些class文件。当我们自己使用maven写一些java程序,进行打包生成jar包。同时在可以在其他的工程下使用,但是我们在这个工程依赖的jar包,在其他工程使用该jar包也要导入。这是jar的里面的class文件war包:其实…

    2022年5月23日
    41
  • Sql Server数据恢复

    Sql Server数据恢复

    2021年8月2日
    61
  • 如何使用google搜索_谷歌在线搜索

    如何使用google搜索_谷歌在线搜索准确搜索排除关键字用EitherOR或进行搜索同义词搜索站内搜索星号的用处在两个数值之间进行搜索在网页标题链接和主体内容中搜索关键词搜索相关网站组合使用上述搜索技巧1.准确搜索最简单和最有效的搜索方式是给关键词加上双引号,这样搜索引擎会反馈和关键词完全吻合的搜索结果。例如,搜索JoeBloggs时,搜索引擎会返回同时跟Joe和Bloggs相关的结果,而搜索“J

    2025年10月23日
    3
  • Python入门习题(40)——CCF CSP认证考试真题:报数游戏「建议收藏」

    Python入门习题(40)——CCF CSP认证考试真题:报数游戏「建议收藏」CCFCSP认证考试真题(201712-2):游戏问题描述解题思路参考答案测试用例小结问题描述试题编号: 201712-2试题名称: 游戏时间限制: 1.0s内存限制: 256.0MB问题描述  有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。  游戏开始,从1…

    2025年9月1日
    9
  • 文件读写api函数是什么_c语言文件的读和写

    文件读写api函数是什么_c语言文件的读和写文件操作API函数详解在VC中,大多数情况对文件的操作都使用系统提供的API函数,但有的函数我们不是很熟悉,以下提供一些文件操作API函数介绍:一般文件操作APICreateFile打开文件要对文件进行读写等操作,首先必须获得文件句柄,通过该函数可以获得文件句柄,该函数是通向文件世界的大门。ReadFile从文件中读取字节信息。在打开文件获得了文件句柄之后,则

    2025年7月22日
    6

发表回复

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

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