使用C ++的强力搜索程序

时间:2015-05-31 15:22:28

标签: c++

我是C ++的新手。最近我正在浏览google开发人员的教程:https://developers.google.com/edu/c++/getting-started

这是一个简单的匹配拼图,强力搜索解决方案: 马花10美元,猪花3美元,兔子只花0.5美元。一位农民以100美元购买100只动物,他购买了多少只动物?

这是我的代码:

#include <iostream>
using namespace std;

int main() {
    int pHorse = 10;
    int pPig = 3;
    int pRabbit = 0.5;
    for (int i = 0; i <= 100 / pHorse; ++i) {
        for (int j = 0; j <= ((100 - i * pHorse) / pPig); ++j) {
            int money = (100 - pHorse * i - pPig * j);
            if (pRabbit * (100 - i - j) == money) {
                cout << "The number of Horses are: " << i << endl;
                cout << "The number of Pigs are: " << j << endl;
                cout << "The number of Rabbits are: " << 100 - i - j << endl;
            }
        }
    }
    return 0;
}

然而,它给了我像[10 0 90]这样荒谬的答案,这显然不正确。

我无法弄清问题在哪里。任何的想法?提前谢谢。

3 个答案:

答案 0 :(得分:2)

而不是

int pRabbit = 0.5;

double pRabbit = 0.5;

答案 1 :(得分:0)

一个int赢了0.5。试试浮动。

答案 2 :(得分:0)

0.5不是整数。它是一个浮点数,因此您不能将0.5存储在整数变量中。您可以使用doublefloat变量。

像这样:

double pRabbit = 0.5;

float pRabbit = 0.5;