为了账号安全,请及时绑定邮箱和手机立即绑定

怎么判断递归函数里的sum=(lzhzuibang(l-1))+2里的l-1什么时候是加号什么时候是减号

怎么判断递归函数里的sum=(lzhzuibang(l-1))+2里的l-1什么时候是加号什么时候是减号

C C++
闷a 2017-05-02 20:04:28
#include <stdio.h>int lzhzuibang(int l){ int sum; if(l==1) { return 10; } else { sum = (lzhzuibang(l-1))+2; printf("第%d个人%d岁\n",l,sum); return sum; } }int main() { int y = lzhzuibang(5); printf("第五个人的年龄是%d岁\n",y); getchar(); }还是不太懂递归函数大神帮忙解释一下
查看完整描述

1 回答

?
Atlas_Wu

TA贡献3条经验 获得超3个赞

递归就是函数自己调用自己。可以把递归看成是一个盒子,先放进去的数据在下面,要后取出来的。比如你这个程序中 l 的值为5, 求lzhzuibang(5)。

lzhzuibang(5)=lzhzuibang(4)+2

lzhzuibang(4)=lzhzuibang(3)+2

lzhzuibang(3)=lzhzuibang(2)+2

lzhzuibang(2)=lzhuzuibang(1)+2

lzhzuibang(1)=10,

lzhzuibang(1)是最后放进去的,所以最先取出来,并且值返回都上一步递归,这样就依次算出上面的值,最终得到lzhuzuibang(5)的值。

要注意的是,在递归结束之前,也就是lzhzuibang(5)求出之前,lzhzuibang(1)到lzhzuibang(4)都是作为临时变量存放于内存当中等待递归的返回值,因此会占用一定的内存空间。如果递归的次数很大,比如你把5改成50000或更大,那么就会出现内存的溢出。

你的问题“sum=(lzhzuibang(l-1))+2里的l-1什么时候是加号什么时候是减号”,我不是很明白什么意思?



查看完整回答
2 反对 回复 2017-05-03
?
慕瓜9220888

TA贡献868条经验 获得超0个赞

RQVJSUAAT

SCUPZMVOE

FZUIAWPIS

GXFRCCIEO

AXCKIYRHX

CODRDSFBB

OQCAZILLH

GTFDSIXHU

GXSWBQAJG

HOJAPPBBO

LCQFNGQGW

LCUZRZPYE

CGYTBAJDI

ZMRDRKQTM

EDPESCROK

WXIQPEOER

GRWANGWFP

QHWUDZIFA

GOQMSBIWT

KYKMCCIWT

MNPLGAGKH

RBNSYLVCP

TUAWLISPJ

WRNYUXHOM

XYUQLFVPQ

DRNJEOEYC

ZAWYUEOLJ

HOUGVZWGK

OFBXLVOFJ

OMYYATKNE

TRGLREMZD

IQIEPQKFG

DOKGFSMHE

DFHMLSFRS

HIHBYCZAX

ZQSOFPIFZ

MXLDMWZMQ

BCINTQNKE

UOEJFICCH

YTSRCFFEQ

DFBNJTHKE

ZWOTISRKU

BCHFHHGJS

CJIWLODXZ

TBQEWWFFY

AHZEGVBLT

NODVTPSCO

LZYNLRQIY

IWECBRAGC

VJYWTWCBO

OSHPBXLIY

LQLDHNPBV

ZEWBHAAMG

BVKPXQOHU

UENVZPNJJ

WXWCHEKNG

IGLLZPSYO

DYGLBRAAQ

IGKZZZFYO

MRWLXDKBU

LWSUGDAAR

WKTRWMBLR

MNCRFSRLU

NEWBAPSYF

CROWBUNNJ

NKCXEUNWV

HPXIUBRXU

SGIWXGCPF

BKPOGFFOO

KVUQPCFVO

FNCKILXIF

FGCEANTNK

WKSDVNZZI

QVQSRHERL

KRZYWGRHQ

UOJIWGAQT

VWBALVLBX

VQOJJFPRU

CGBJOHQJZ

NITVJBXTZ

DUTRMVHKU

QBQETMUJT

SNYGPIUTQ

CDYQVUNTJ

ALQFDEXXK

ESKJHXXQG

QDHQEORDW

RPAFNGYEO

BSUZENJMP

RODSAWPIS

EIKFXXMMJ

QOCVZUAAC

AODLQGPOB

TUJLZFYRO

WHPUCVRUU

ZDZXVFHFP

HPPUFVEOE

QOWFUNGBR

PGVTIUHXA

AHGUCRQAQ

LMRTBDDWC

YEMUJSBBO

CMUTLKUDZ

GRGOJMIBO

PKIUFOYOX

RBKAVYOHQ

BWKZHTTFP

ABZOSVBCC

FGOTMZOIR

OZOTUQYLU

XTSNLVXUA

IPOGHHVFB

AYGYNWZCS

JARANMMLY

WHCBCCYHK

EVDSGYKAU

MNLQIYOHQ

YPXKSKTMF

HZRFEKDMW

QWODHRQQM

ZAIDLYHXE

WUJLBBQQG

QYNFXWCVY

DUSEWZORU

IFUWHHXQQ

QAFFOUTMW

KODIGGJFB

QKVESLRWW

HIDSKQZCM

UVMRQFVEB

WXCAYPYYU

IWINFLHTD

VGFDIVLUU

EMKWSISBL

RMEMYZCVO

DUPRMZIYB

JDPDEWWFZ

XUZBGPCBB

GBGCKTDKE

VMKRQSIYV

BCIXMQZGC

YTIONUDUU

YCOGSUOVB

DBSYNKHUV

BSONYRIZZ

SNXXSWZCN

UIYXJMZNH

VWODJMGAG

NFDMVFYPD

VCHTBKXSY

BZHFNTJUU

KRZYQMPIC

OFUZGCFVU

BCAJBQLVE

VPOTYKHUQ

GOWHNGZIP

NNMUCNNGW

LVEFNQMMR

IMKCBAWQW

HLJLATJCY

NBQWEHBUH

RMXZYHAJD

KRZINZOBV

WNWRPPMIC

XNJBZMCBY

ELHYNXQZM

SDZOAQSIP

BSKJEXTMG

EZZUMZSSO

VPRPXNVUH

RLKMKTQCC

DBUZPMFJG

XFHPEHWZZ

EVTSDXPVS

ARMUMUJWW

SJIWYIENK

ZGWSQJPSE

CTLJVRHAG

CCJYZZZLF

HBAYAGCCF

查看完整回答
反对 回复 2021-10-22
  • 1 回答
  • 0 关注
  • 1611 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信