欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

C語言的遞歸思想實(shí)例分析

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語言|點(diǎn)擊: 次

本文實(shí)例分析C語言的遞歸思想,分享給大家供大家參考之用。具體方法如下:

通俗點(diǎn)來說,遞歸就是自己調(diào)用自己。

遞歸的難點(diǎn)一是理解遞歸的執(zhí)行調(diào)用過程,二是設(shè)置一個(gè)合理的遞歸結(jié)束條件。

下面來看一段摘自書中的簡單程序:

#include <STDIO.H>
long fact(int n);
long rfact(int n);
int main(void)
{
 int num;
 printf("This program calculates factorials.\n");
 printf("Enter a value in the range 0-12 (q to quit):\n");
 while(scanf("%d",&num)==1)
 {
 if(num<0)
  printf("No negative numbers,please.\n");
 else if (num>12)
 {
  printf("Keep input under 13.\n");
 }
 else
 {
  printf("loop:%d factorial=%d\n",num,fact(num));
  printf("recursion:%d factorial=%d\n",num,rfact(num));
 }
 }
}

long fact(int n)
{
 long ans;
 for (ans=1;n>1;n--)
 {
 ans*=n;
 }
 return ans;
}

long rfact(int n)
{
 long ans;
 if (n>0)
 {
 ans=n*rfact(n-1);
 } 
 else
 {
 ans=1;
 }
 return ans;
}

該程序用來計(jì)算階乘,分別采用循環(huán)和遞歸實(shí)現(xiàn)。用語言來描述一下遞歸的執(zhí)行過程吧。
假設(shè)計(jì)算5!,n=5,分別調(diào)用了自己4次,即n分別等于4,3,,2,1。當(dāng)n等于0時(shí),返回ans=1,這時(shí)rfact這個(gè)函數(shù)才剛剛完整的執(zhí)行一遍,返回ans=1,

壓棧已經(jīng)完成,開始出棧。

n與ans,分別相乘5次,即ans分別等于1,2,6,24,120(24*5)

即5!=120

我們來看一下n的變化規(guī)律

入棧時(shí),n=5,4,3,2,1,

出棧時(shí),n=1,2,3,4,5

遞歸實(shí)質(zhì)上就是棧

往往容易忽略遞歸條件不滿足后,被調(diào)函數(shù)把控制權(quán)轉(zhuǎn)會(huì)主調(diào)函數(shù),主調(diào)函數(shù)繼續(xù)執(zhí)行剩余的語句這一過程,而造成迷惘。

其實(shí),所有事情都可以用生活中的事情加以解釋,就像四大名著相互相通,可以互相解釋一樣,做一件事情可以不要求甚至不清楚最后的結(jié)果,但是一定要明白這件事情是在做什么,明白這件事情來龍去脈,但是不要死鉆牛角尖,靜心做學(xué)問。

感興趣的朋友可以測試運(yùn)行本文實(shí)例以加深理解,相信本文所述對(duì)大家C程序設(shè)計(jì)的學(xué)習(xí)有一定的借鑒價(jià)值。

上一篇:C語言實(shí)現(xiàn)二叉樹遍歷的迭代算法

欄    目:C語言

下一篇:C程序?qū)崿F(xiàn)整數(shù)的素?cái)?shù)和分解問題

本文標(biāo)題:C語言的遞歸思想實(shí)例分析

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3357.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有