吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1493|回复: 7
收起左侧

[求助] 编程计算一个题目,死活弄不出来,

[复制链接]
Acwiner 发表于 2021-7-22 22:04
50吾爱币
本帖最后由 Acwiner 于 2021-7-23 14:48 编辑

大佬们,我有一道题死活算不出来,奈何不太会编程,不知道咋搞,

436a+512b+1035c+1199d=17700     或者    436a+512b+1035c+1200d=17700
                      求a=? b=? c=? d=?


大哥们求解求解求解!!!!!     需要正整数兄弟们,忘记说了,我的错,我跪下

最佳答案

查看完整内容

[md]### 大体思路 对abcd做循环,然后验证是否符合取值,如果符合就打印出来。 因为只能是正整数,所以取值范围其实可以缩小,比如436a+512b+1035c要是正好17700,d只能取0,取1就越界了。 ### 代码 ``` #include using namespace std; int main() { for (int a = 0; a

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

yacc 发表于 2021-7-22 22:04

大体思路

对abcd做循环,然后验证是否符合取值,如果符合就打印出来。
因为只能是正整数,所以取值范围其实可以缩小,比如436a+512b+1035c要是正好17700,d只能取0,取1就越界了。

代码

#include <iostream>
using namespace std;
int main()
{
    for (int a = 0; a <= 17700 / 436; a++)
    {
        for (int b = 0; b <= (17700-436*a) / 512; b++)
        {
            for (int c = 0; c <= (17700-436*a-512*b) / 1035; c++)
            {
                for (int d = 0; d <= (17700-436*a-512*b-1035*c) / 1199; d++)
                {
                    if (436 * a + 512 * b + 1035 * c + 1199 * d == 17700)
                    {
                        cout << "436 x " << a << " + 512 x " << b << " + 1035 x " << c << " + 1199 x " << d << "= 17700" << endl;
                    }
                    else if (436 * a + 512 * b + 1035 * c + 1200 * d == 17700)
                    {
                        cout << "436 x " << a << " + 512 x " << b << " + 1035 x " << c << " + 1200 x " << d << "= 17700" << endl;
                    }
                }
            }
        }
    }
    return 0;
}

运行结果

436 x 1 + 512 x 22 + 1035 x 0 + 1200 x 5= 17700
436 x 6 + 512 x 2 + 1035 x 2 + 1199 x 10= 17700
436 x 6 + 512 x 12 + 1035 x 4 + 1200 x 4= 17700
436 x 11 + 512 x 2 + 1035 x 8 + 1200 x 3= 17700
436 x 17 + 512 x 2 + 1035 x 2 + 1199 x 6= 17700
436 x 21 + 512 x 12 + 1035 x 0 + 1200 x 2= 17700
436 x 26 + 512 x 2 + 1035 x 4 + 1200 x 1= 17700
436 x 28 + 512 x 2 + 1035 x 2 + 1199 x 2= 17700
零下八度 发表于 2021-7-23 00:47
a、b、c、d 取最小值0  都远远大于17700 ,解个蛋
孤城。 发表于 2021-7-23 02:43
lianyi 发表于 2021-7-23 13:23
这题n多个解,没有说明abcd的值是非负整数等等
 楼主| Acwiner 发表于 2021-7-23 14:47
需要正整数,忘记说了,我的错
xiaoyu0814 发表于 2021-7-23 17:22
你确定你的题目和要求都没有错?
tjd0227 发表于 2021-7-23 17:47
如果436a代表 436*a的话,结果如下:
436a + 512b + 1035c + 1199d == 17700
a:6,b:2,c:2,d:10
a:17,b:2,c:2,d:6
a:28,b:2,c:2,d:2


436a + 512b + 1035c + 1200d == 17700
a:1,b:22,c:0,d:5
a:6,b:12,c:4,d:4
a:11,b:2,c:8,d:3
a:21,b:12,c:0,d:2
a:26,b:2,c:4,d:1
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 00:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表