我是靠谱客的博主 大气糖豆,最近开发中收集的这篇文章主要介绍1503 Problem A 最简分式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Description

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

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

HINT

Append Code

#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){
            printf("%dn",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/%dn",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/%dn",len,m,n);
        }
    }
    return 0;
}

最后

以上就是大气糖豆为你收集整理的1503 Problem A 最简分式的全部内容,希望文章能够帮你解决1503 Problem A 最简分式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部