不知道錯誤在哪
#include <stdio.h>?
/*?
?* 請使用遞歸函數完成本題
?* 小編已將正確代碼放在左側任務的“不知道怎么辦”里
?* 小編希望各位童鞋獨立完成哦~
?*/
int getAge(int num){
? ? int age;
? ? if(num==1){
? ? ? ? return 10;
? ? }
? ? else{
? ? ? ? age = getAge(num)*2+8;
? ? }
? ? return age;
}
int main()?
{
? ? int age = getAge(5);
printf("第5個人的年齡是%d歲", age);?
return 0;
}
2019-01-20
遞歸函數是調用它本身來進行運算,故我們要根據問題本身來考慮函數的出口和每一次遞歸的的聯系,如第五人說比第四人大兩歲,第四人比第三人大兩歲······第一人說他有10歲,可以看出他們之間相互大兩歲,則其數列表達式可為a(n)=a(n-1)+2。所以你可將age=getAge(num)*2+8改為age=gerAge(n-1)+2。即可
希望對你有幫助!