您好,我无法编写此函数。使用递归进行最小数量的硬币更改
其目的是编写一个函数,计算需要进行更改的最少金币数量。该函数必须使用递归,并且不能使用任何类型的循环。
为什么我遇到了很多麻烦这个问题的原因是,返回类型是所有硬币的结构:
struct Martian {
int pennies; //Represent one cent
int nicks; //Represent five cents
int dodeks; //Represent twelve cents
};
功能如下:
Martian change(int cents)
{
}
这是一个家庭作业问题,所以我没有要求答案,但我只是有很多麻烦,试图找出这个基础案例应该是什么。这是我到目前为止:
Martian cool = {0, 0, 0};
if(cents < 0)
{
Martian cool = {0,0,0};
return cool;
}
else if(cents == 0)
{
Martian cool = {0, 0, 0};
cool.pennies = 1;
return cool;
}
else if(cents > 12)
{
cool.dodeks++;
cents -= 12;
}
else if(cents > 5)
{
cool.nicks++;
cents -= 5;
}
cool.dodeks += change(cents - 12).dodeks;
cool.nicks += change(cents - 5).nicks;
cool.pennies += cents;
return cool;
谢谢!
你的问题是什么?我不太明白。 (但是如何写这个东西很明显。) – Deduplicator 2014-10-28 01:49:41
在显示错误的代码时,使用变量名称如'cool'或函数名称如'awesome_solution'永远都不明智;-) – 2014-10-28 02:31:26
对不起,我只是停留在什么基础上这种递归的情况是 – Bob506 2014-10-28 02:43:28