我是C++的新手。最近,我正在瀏覽谷歌開發者的教程:https://developers.google.com/edu/c++/getting-started使用C++的蠻力搜索程序
這是一個簡單的匹配難題與蠻力搜索解決方案: 馬成本10美元,豬成本3美元,兔子只有0.50美元。農民以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],這是不正確的明顯。我想不出哪裏是問題。任何想法?提前致謝。
當你新的東西,確保在*每一步*你的假設與現實相符。例如,您是否驗證了「pRabbit」的值? –
您正在使用不能包含分數的*整數*。考慮使用*美分*而不是*美元*。如果您使用*浮動*由於真實的近似值,您的比較將變得更加困難。 – Galik
我懂了。感謝您的有益建議。我很愚蠢,當然pRabbit會隱式轉換爲0。我現在看到了這些觀點 – user1200647