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

為了賬號安全,請及時綁定郵箱和手機立即綁定

求解惑啊被困擾好幾天了!

#include <stdio.h>

/* 定義獲取單詞數(shù)量的函數(shù) */

int getWordNumber(int 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;

}

每一次調(diào)用n的值分別變成了多少啊,求舉幾個列子

比如 n=10 的時候

(10-1)+10=19

那么第二次循環(huán)n的值分別為多少啊,我只能看懂第一個

正在回答

3 回答

第二個的n值就是當(dāng)前函數(shù)里面剛開始時候括號里面的值,

1 回復(fù) 有任何疑惑可以回復(fù)我~

我理解的就是,,,一直循環(huán)使用自身,但是值不一樣,第一次的n是10 第二次的n就相當(dāng)于上個的n-1,也就是9,第三次的n就是9-1,也就是8,第四次的n就是8-1,也就是7~~~~~~~一直到最后一次的時候的n的值是1,就直接返回1,然后在開始往回走,慢慢的每個n值相加,最后就是相加的值,emmmmmm我不會堆棧什么的,我自己理解的,就是嗯,一層一層套,慢慢的就套出了答案。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕仰103958 提問者

我給你想的差不多,不過第二個n的值是怎么變化的呢?就是(n-1)+n 后邊這個n
2018-11-21 回復(fù) 有任何疑惑可以回復(fù)我~

首先你要理解什么是遞歸。

遞歸屬于逆向思維,我們平常的思維方式屬于遞推,也就是從1到100。

如何知道到第N天小明學(xué)會了多少個單詞?很簡單啊,昨天學(xué)會的加上今天的天數(shù)就是了嘛。

那昨天學(xué)會了多少?很簡單啊,前天學(xué)會多少加上昨天的天數(shù)不就知道了嗎?

那前天學(xué)會了多少怎么知道呢?同上。

我們只需關(guān)心本次的結(jié)果即可。

2 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕仰103958 提問者

還是不懂。。。。能不能直接把第二次循環(huán)的數(shù)值寫一下,簡單明了, 比如第二次(n—1)+n,n的值分別是多少
2018-11-20 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕仰103958 提問者

還有他這個函數(shù),是怎么相加的呢,有點迷,為什么會自己加上,上一次的值
2018-11-20 回復(fù) 有任何疑惑可以回復(fù)我~
#3

Andd_Dev 回復(fù) 慕仰103958 提問者

迷就對了,,你連堆棧都不知道呢你肯定迷啊。 想了解遞歸你先看看內(nèi)存‘棧’方面的知識吧。
2018-11-20 回復(fù) 有任何疑惑可以回復(fù)我~
#4

Andd_Dev 回復(fù) 慕仰103958 提問者

小明1天學(xué)1個單詞 第2天學(xué)2個單詞。 如果求3天小明學(xué)了多少單詞,那就n=3; getWordNumber(n-1)+n 就等于 「3 加上 你又調(diào)用了一次getWordNumber(2)函數(shù)」 傳入2是因為3-1等于2這你看得懂吧。 所以到這里就是:「getWordNumber(2) + 3」,沒問題吧?
2018-11-20 回復(fù) 有任何疑惑可以回復(fù)我~
#5

Andd_Dev 回復(fù) 慕仰103958 提問者

if n == 1 返回1 2不等于1 所以繼續(xù)走下面的else, getWordNumber(n-1)+n; n的值在這次調(diào)用等于2 所以算上上面的寫出來就是: 「getWordNumber(1) + 2 + 3」 因為你又調(diào)用了getWordNumber()函數(shù),傳入的是1,那么走到if n == 1 return 1;
2018-11-20 回復(fù) 有任何疑惑可以回復(fù)我~
#6

Andd_Dev 回復(fù) 慕仰103958 提問者

所以總體寫成人能看懂的就是: 「1 + 2 + 3」 還看不懂的話,給你兩個建議。 1、把基礎(chǔ)語法、關(guān)鍵字、數(shù)據(jù)類型全都背熟。2、去查一查什么是堆棧數(shù)組,了解一下數(shù)據(jù)結(jié)構(gòu)。 了解過這些知識點之后,遞歸都不用別人特意告訴你,你掃一眼就能看懂。
2018-11-20 回復(fù) 有任何疑惑可以回復(fù)我~
#7

慕仰103958 提問者 回復(fù) Andd_Dev

好的,現(xiàn)在有點理解了,等會去網(wǎng)上學(xué)習(xí)一下內(nèi)存知識 請問自學(xué)c又沒有什么好的推薦呢,我學(xué)c是為了給c++打基礎(chǔ)
2018-11-20 回復(fù) 有任何疑惑可以回復(fù)我~
#8

Andd_Dev 回復(fù) 慕仰103958 提問者

想學(xué)C++直接去學(xué)C++好了,沒必要‘自底向上’的學(xué),畢竟不是完全一樣的語言,你熟悉了一個再去學(xué)一個很像的兄弟,沒什么必要,當(dāng)然話說回來主要還是看你自己的需求。 書籍推薦我就不班門弄斧了,我也是跑來學(xué)C才到這來的? 不過可以推薦你一個文章,http://zh.lucida.me/blog/on-learning-algorithms/ 你可以花點時間看一下自行斟酌需不需要花時間學(xué)一學(xué)數(shù)據(jù)結(jié)構(gòu)和算法。 編程要學(xué)的東西蠻多的,慢慢來~
2018-11-20 回復(fù) 有任何疑惑可以回復(fù)我~
#9

慕仰103958 提問者 回復(fù) Andd_Dev

嗯,太謝謝了。共同努力
2018-11-20 回復(fù) 有任何疑惑可以回復(fù)我~
查看6條回復(fù)

舉報

0/150
提交
取消
C語言入門
  • 參與學(xué)習(xí)       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

求解惑啊被困擾好幾天了!

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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