亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

我寫了一個1+.....+100的遞歸函數但是n在1,2處有些不明白,求前輩們幫助?

我寫了一個1+.....+100的遞歸函數但是n在1,2處有些不明白,求前輩們幫助?

C C# C++
夢在彼方 2016-08-18 22:35:16
#include <stdio.h>int summary(int n){?int sum;?if(n==1)?{??sum = 1;?}?else?{??sum = n+summary(n-1);//在n=1時,sum=1,在n=2時,sum=2+summary(1),也就是說summary(1)就等于sum就等于1?感覺很不對誒!?}?return sum;}int main (){?int n = 100;?printf("1+......+100的結果為%d\n:",summary(n));?return 0;}求大神解答....
查看完整描述

3 回答

已采納
?
CodeCode

TA貢獻5條經驗 獲得超3個贊

”sum=2+summary(1),也就是說summary(1)就等于sum就等于1“

不要當成數學公式看,程序里的sum是個局部變量,每一次遞歸調用的sum都是不同的sum變量。關注一下變量的作用域。

查看完整回答
1 反對 回復 2016-08-19
?
凌小天3635910

TA貢獻17條經驗 獲得超13個贊

假設n>0
summary(n)=n+summary(n–1)
=n+(n-1)+summary(n–2)
=n+(n–1)+(n–2)+…+3+summary(2)
=n+(n–1)+(n–2)+…+3+2+summary(1)
=n+(n–1)+(n–2)+…+3+2+1
=n(n+1)/2

遞歸總有一個基本條件用于判斷遞歸原點,不然遞歸是無意義的。

查看完整回答
1 反對 回復 2016-08-19
?
精慕門9179926

TA貢獻4條經驗 獲得超3個贊

看暈了。快帶我去醫院

查看完整回答
反對 回復 2016-09-23
  • 3 回答
  • 0 關注
  • 1859 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號