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

编程计算一个题目,死活弄不出来,

本帖最后由 Acwiner 于 2021-7-23 14:48 编辑

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

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


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

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
页: [1]
查看完整版本: 编程计算一个题目,死活弄不出来,