您好,我無法編寫此函數。使用遞歸進行最小數量的硬幣更改
其目的是編寫一個函數,計算需要進行更改的最少金幣數量。該函數必須使用遞歸,並且不能使用任何類型的循環。
爲什麼我遇到了很多麻煩這個問題的原因是,返回類型是所有硬幣的結構:
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