給我兒子講的一道遞迴題!

2021-09-22 21:10:39 字數 838 閱讀 9270

首先看一下題目要求:

寫乙個遞迴函式digitsum(n),輸入乙個非負整數,返回組成它的數字之和, 

例如,呼叫digitsum(1729),則應該返回1+7+2+9,它的和是19 。

給這個狗der講的時候,我真的快要氣炸了。首先,他不明白遞迴什麼時候該返回,其次他不明白怎麼樣累加。

那麼遞迴是什麼?

簡單來說,遞迴就是在自己函式體內繼續呼叫自己,直到某一刻遞迴到最底層了開始逐層返回。

拿這道題來說,開始返回的那個點就是當形參為1位數時就開始返回。

#includeint digitsum(int num)

else }

int main()

digitsum(17/10)  --->  digitsum(1),當num = 1時,return 1;即digitsum(17/10) = 1;

digitsum(172/10)   --->  digitsum(17),當num = 17時,return digitsum(17/10) + 17%10 = 1+7 = 8;

digitsum(1729/10)   --->  digitsum(172),當num = 172時,return digitsum(172/10) + 172%10 = 8+2 = 10;

digitsum(1729)   --->  digitsum(1729/10),當num = 1729時,return digitsum(1729/10) + 1729 % 10 = 10+9 = 19;

解一道遞迴呼叫題

int ack int m,int n ack 3,3 的輸出是什麼?假設我們將ack m,n 填充到乙個二維矩陣的第m行第n列,從函式中可以看出第m行第n列的資料依賴於第m 1行和第m行第n 1列的資料。根據if m 0 return n 1 可以填充第0行的資料為0,1,2,3,4,5,6,7....

分享一道有趣的遞迴題

這是博主在今日計算機考試上遇到的一道遞迴題,由於前面做得太慢,只剩下了15分鐘,絞盡腦汁才把這道題的主體部分給寫了出來。題目是這樣的 給出乙個列表,裡面全是integer,比如 8,4,4,8,12,3,2,9 或者 2,1,14,6,4,3 我們要做的呢,是把找出這個列表最大的corner和。什麼...

一道遞迴問題

題目大意是 給定乙個字串a,然後給定多個單詞,然後根據給定的單詞在字串中插入空格,求插入空格最少的組合。例如給定字串ilikeeverything,給定單詞i like every thing likeeverything。輸出為i likeeverything。include include in...