nefuoj-943:黑屏

description

Veda 在用宽高比为a:b的显示器看一部宽高比为c:d的电影。在使用全屏模式看电影时,如果这个比例不相同,
那么在显示器上就会出现了一些没有画面的地方,我们暂且称之为“黑屏”(全屏放大为等比放大,并且不旋转电影)。
那么问题来了,这些“黑屏”占屏幕的最小比例是多少?

input

每行四个空格隔开的整数a,b,c,d( 0 <= a,b,c,d <= 1000)

output

“黑屏”的最小占比(分数表示)

sample_input

1 1 3 2
3 4 2 3

sample_output

1/3
1/9




题解:这是一道简单的数学题,需要注意的就是结尾处需要分数化简以及“0/1”这个情况的处理;





code:
#include <cstdio>
#include <iostream>
using namespace std;
int gcd(int a,int b)//递归方法的最大公倍数求法,用来约分分数
{
    return b?gcd(b,a%b):a;
}
int main()
{
    int a,b,c,d;
    while(cin>>a>>b>>c>>d)
    {
        int ad=a*d;//将分数化为同底的两个分数,直接用一个分数的分子乘以另一个分数的分母就行了
        int bc=b*c;
        int cha;//两个分数的分子的差值
        int fm;//两个分子中大的一个作为答案的分母
        if(ad>bc)//三个判断语句分别比较ad和bc的大小
        {
            cha=ad-bc;
            fm=ad;
        }
        else if(ad==bc)//特殊情况的处理
        {
            printf("0/1\n");
            continue;//直接跳回循环的初始位置重新进行循环
        }
        else
        {
            cha=bc-ad;
            fm=bc;
        }
        int gc=gcd(cha,fm);//求最大公约数
        printf("%d/%d\n",cha/gc,fm/gc);//分数化简的同时出结果
    }
return 0;
}



补充:
0/1 这个情况不处理可能会出现WA或者FPE;


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值