我试图解决这个问题:"有一个1,2和5美元的硬币,检查你能从这些硬币组合中获得多少种可能的方法$ 10"
我无法找到适合这些的好方案,因为我的代码显示只有7种组合。任何人都可以帮我纠正我的思维方式和代码吗?
int combination_amount = 0;
int cash_amount = 10;
int a , b , c;
for (a = 0; a < 10; a++)
{
for (b = 0; b < 5; b++)
{
for (c = 0; c < 2; c++)
{
if (1 * a + 2 * b + 5 * c == 10)
{
combination_amount += 1;
}
}
}
}
Console.WriteLine("There is a total number of {0} combinations amount ", combination_amount);
答案 0 :(得分:1)
问题在于for
循环的退出条件,您使用&#34;&lt;&#34;,这意味着不包含限制值,因此你会错过像&#34; 5次2&#34;
使用&#34;&lt; =&#34;重写您的循环而不是&#34;&lt;&#34;,你应该得到正确的价值。