2019牛客暑期多校训练营(第一场)J-Fraction Comparision

2019牛客暑期多校训练营(第一场)J-Fraction Comparision

原题地址:https://ac.nowcoder.com/acm/contest/881/J

在这里插入图片描述
在这里插入图片描述
思路:
1、这道题数据很大,所以直接交叉相乘肯定是不行的,但是可以分为两部分来做,整数部分和余数部分。

2、先比较整数部分,当然,整数部分大的肯定整个分数就大,整数部分小的肯定整个分数就小。

3、如果两个分数的整数部分相等,剩下的就是要来比较余数部分,余部部分除以分母,其实就是相当于带数减去相同的整数后剩下的真分数部分,这时交叉相乘就可以了。

代码如下:

#include <bits/stdc++.h>	//万能头文件
using namespace std;
long long x,a,y,b;
int main()
{
    while(scanf("%lld%lld%lld%lld",&x,&a,&y,&b)!=EOF)
    {
        if(x/a>y/b)
            printf(">\n");
        else if(x/a<y/b)
            printf("<\n");
        else	//整数部分相等的情况
        {
            if(x%a*b>y%b*a)		//取余数部分再交叉相乘
                printf(">\n");
            else if(x%a*b<y%b*a)
                printf("<\n");
            else
                printf("=\n");
        }
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值