第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

return getWordNumber( n - 1 ) +n;是怎么工作的

return getWordNumber( n - 1 ) +n;是怎么工作的

C
慕粉4024641 2016-09-23 19:55:16
#include <stdio.h>/* 定義獲取單詞數(shù)量的函數(shù) */int getWordNumber(int n){ ??????printf("%d\n",n);? ? if(n == 1)?? ? {? ? ? ? return 1; ? ?//第一天只會1個單詞? ? }? ? else{? ? ? ? return getWordNumber( n - 1 ) +n; ? ? ? //到第天會的單詞數(shù)量? ? }}int main(){? ? int num = getWordNumber(10); ? ? //獲取會了的單詞數(shù)量? ? printf("小明第10天記了:%d個單詞。\n", num);? ? return 0;}?return getWordNumber( n - 1 ) +n; 這是怎么出現(xiàn)55的 ??我寫的?printf("%d\n",n);會輸出10,9,8,7,6,5,4,3,2,1 ? ?怎么看都搞不清工作流程 ?難道那個55不是存在n里面?如果不是存在哪里
查看完整描述

2 回答

已采納
?
onemoo

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個贊

這就是“遞歸”。

最后的結(jié)果其實(shí)就是從1加到10,所以結(jié)果是55。

getWordNumber函數(shù)中的printf("%d\n",n)打印的就是每次調(diào)用傳入的參數(shù),確實(shí)會依次輸出10,9,8,7,6,5,4,3,2,1,這也沒錯啊。

55當(dāng)然不是存在n里面,最終從getWordNumber(10)返回的值是55,被保存到num中。


也許你沒理解遞歸的執(zhí)行流程:

遞歸函數(shù)中首先規(guī)定一個遞歸截止條件,這個代碼中就是if(n == 1) ,隨后再次調(diào)用自己(當(dāng)然是傳入不同的參數(shù))。

重點(diǎn)是:這里再次調(diào)用自己時,程序執(zhí)行流程進(jìn)入到另一個getWordNumber函數(shù)中,但前次調(diào)用的getWordNumber函數(shù)是沒有結(jié)束的,只是暫停在return getWordNumber( n - 1 ) +n;語句那里,等待getWordNumber( n - 1 )返回。

這樣不斷調(diào)用自己,直到某次調(diào)用時傳入的參數(shù) n 就是 1 ——遇到了遞歸截止條件,于是函數(shù)返回 1 到上一次調(diào)用中,這個“上一次調(diào)用”的函數(shù)原本是暫停在?return getWordNumber( n - 1 ) +n; 這里,這樣?getWordNumber( n - 1 ) 就是函數(shù)返回值(也就是1),所以就返回了?1 + n,同樣是返回到上級調(diào)用中...... 這樣這一串調(diào)用一直返回到最初的getWordNumber函數(shù)中,最終返回的結(jié)果就等于是之前所有結(jié)果的和。


我在老問答區(qū)有一個回答,里面舉了一個具體的例子,雖然不是關(guān)于這個代碼的,但含義是完全一樣的,你可以參考:http://idcbgp.cn/qadetail/90499


如果還是不懂,就再寫出來具體哪里不明白。

查看完整回答
反對 回復(fù) 2016-09-23
?
全_無_修

TA貢獻(xiàn)11條經(jīng)驗(yàn) 獲得超6個贊

return ((getWordNumber( n - 1 ) )+n); ------>>return {[getWordNumber( n - 1 ) ]+n}; 前面加了兩對小括號,后面加了一對中括號和一對大括號,后面加的“不合法的括號種類”是為了容易理解。不知道這樣對你有沒有什么提示性的幫助。

查看完整回答
反對 回復(fù) 2016-09-26
  • 2 回答
  • 1 關(guān)注
  • 1507 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號