yzu_ylc 2023-04-18 20:20 采纳率: 0%
浏览 4

给定两个数a和b,在他们的因子里各找一个数c和d,使得c*d接近128且c和d尽量在[8,16之间]

给定两个数a和b,在他们的因子里各找一个数c和d,使得c*d接近128且c和d尽量在[8,16之间]

如a b分别为11,16,最终返回8,11

c或c++实现

  • 写回答

1条回答 默认 最新

  • 守时间的孤岛 2023-04-19 09:07
    关注

    该回答引用chatgpt:
    c++

    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    int main()
    {
        int a = 11, b = 16;
        int min_diff = INT_MAX;
        int res_c = 0, res_d = 0;
    
        for (int c = 8; c <= 16; c++) {
            for (int d = 8; d <= 16; d++) {
                int prod = c * d;
                int diff = abs(prod - 128);
                if (diff < min_diff && a % c == 0 && b % d == 0) {
                    min_diff = diff;
                    res_c = c;
                    res_d = d;
                }
            }
        }
    
        cout << res_c << " " << res_d << endl;
    
        return 0;
    }
    
    
    

    程序中,我们首先定义了两个数 a 和 b,然后用两个循环遍历所有可能的因子 c 和 d,使得它们的乘积最接近128。同时,我们要求 c 和 d 都在 [8, 16] 的范围内,并且它们是 a 和 b 的因子,即 a 和 c 整除,b 和 d 整除。如果找到了比当前最小差值更小的乘积差值,则更新最小差值和对应的因子值。最后输出找到的因子 c 和 d 即可。对于其他数值的 a 和 b,只需要将程序中的 a 和 b 更改为相应的数值即可。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月18日

悬赏问题

  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求
  • ¥20 antv g6 折线边如何变为钝角
  • ¥30 如何在Matlab或Python中 设置饼图的高度
  • ¥15 nginx中的CORS策略应该如何配置