最接近的分数

本文详细探讨了如何使用C++编程语言实现寻找两个给定分数中最接近的分数的算法。通过数据结构和高效的算法设计,实现了在大量分数中快速找到目标分数的功能,适用于数值计算和比较场景。
摘要由CSDN通过智能技术生成

#include<iostream>
using namespace std;

int main(){
    float N,A,B;
    cin>>N>>A>>B;
    int tmpj=1,tmpi=N;   //记录比A/B小的最大的分数,tmpj,tmpi分别记录分子分母
    for(int i=1;i<=N;i++){ //遍历分母,因为找最大的分数,分母从小往大遍历
        for(int j=i-1;j>0;j--){ //遍历分子 ,分子从大往小遍历

//j*B < A*i 即 j/i<A/B条件 ; 
//tmpj*i<tmpi*j 即tmpj/tmpi <j/i 发现这个比A/B的分数有更大的值
            if((j*B < A*i) && (tmpj*i<tmpi*j)){
                tmpj=j;
                tmpi=i;
            }
        }
    }
    cout<<tmpj<<" "<<tmpi;

    return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值