OJ_1186数学公式【在化简分数时调用函数进行化简】【简便方法】

来源:互联网 发布:web前端后端数据交互 编辑:程序博客网 时间:2024/03/29 19:08

===========PO主叨逼叨===========

这个题,我一开始是打算写一个求解最大公约数的函数的进行调用,但是这里有一个更为简便的方法,请往下继续阅读调用函数的部分。

===============================

第一行输入 两个整数 a,b

对于每组数据输出数据三行(数字和符号之间都有一个空格)。

第一行输出格式:小数形式
a / b = c(c为a除以b的值,保留2位小数)
第二行输出格式:百分数形式
a / b = d(d为a除以b的值的百分数形式,无小数点)
第三行输出格式:分式形式,如果a/b是整数,那么分数形式就是分母为1.
a / b = e / c
或者
a / b = d ( e / c )

(e / c为a除以b的分式形式,分子分母不可继续化简,如果是假分数化为带分数) 

样例

输入

14 50
25 6
100 3 
输出

14 / 50 = 0.28
14 / 50 = 28%
14 / 50 = 7 / 25
25 / 6 = 4.17
25 / 6 = 417%
25 / 6 = 4 ( 1 / 6 )
100 / 3 = 33.33
100 / 3 = 3333%
100 / 3 = 33 ( 1 / 3 ) 


==============代码如下


#include <stdio.h>
#include <stdlib.h>
int main()
{
    
int fuck(int m,int n);
int c,d;
    double a,b;
    while(scanf("%d%d",&c,&d)!=EOF)
    {
        a=c,b=d;
        printf("%.0lf / %.0lf = %.2lf\r\n",a,b,a/b);
        printf("%.0lf / %.0lf = %.0lf%%\r\n",a,b,a/b*100);
        if(a>b && c%d)
            printf("%.0lf / %.0lf = %d ( %d / %d )\r\n",a,b,c/d,(c%d)/fuck(c%d,d),d/fuck(c%d,d));
        else
            printf("%.0lf / %.0lf = %d / %d\r\n",a,b,c/fuck(c,d),d/fuck(c,d));
    }


    return 0;
}
 
int fuck(int m,int n)
{
    while(m!=n)
    {
if(m>n) m-=n;
else n-=m;
    }
     return m;
}



0 0
原创粉丝点击