梁梁棋淮 2019-11-14 10:29 采纳率: 0%
浏览 581

如何用python实现比例简化?

社交媒体上, 经常会看到针对某一个观点同意与否的民意调查以及结果. 例如, 对某一观点表示支持的有1498 人, 反对的有 902人, 那么赞同与反对的比例可以简单的记为1498:902.

不过, 如果把调查结果就以这种方式呈现出来, 大多数人肯定不会满意. 因为这个比例的数值太大, 难以一眼看出它们的关系. 对于上面这个例子, 如果把比例记为5:3, 虽然与真实结果有一定的误差, 但依然能够较为准确地反映调查结果, 同时也显得比较直观.

现给出支持人数A, 反对人数B, 以及一个上限L(1 ≤ L ≤ 100), 请将A:B化简为A':B'(化简过程定义为函数). 要求在A'和B'均不大于L且A'和B'互质(两个整数的最大公约数是1)的前提下, A'/B' ≥ A/B且A'/B'-A/B的值尽可能小.

注意: 为了避免浮点数运算的误差, 应使用整数运算进行条件判断. 如: 判断A'/B' ≥ A/B可转换为判断A'B≥ AB', 前者是浮点数运算, 有误差; 后者是整数运算, 无误差. 同理, A'/B'-A/B的值尽可能小也应该转换成整数运算的比较。

  • 写回答

1条回答

  • weixin_45872799 2019-11-14 10:56
    关注

    #include
    using namespace std;
    int main()
    {
        double a,b,l,x,y;
        cin>>a>>b>>l;
        double m=1e9,tmp,k=a/b;
        for(double i=1;i<=l;i++)
        {
            for(double j=1;j<=l;j++)
            {
                tmp=i/j-k;
                if(tmp=0)
                {
                    x=i;
                    y=j;
                    m=tmp;
                }
            }
        }
        cout<<x<<" "<<y<<endl;
        return 0;
    ————————————————
    版权声明:本文为CSDN博主「Merry2004」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/merry2004/article/details/78125901

    评论

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试