C51學(xué)習(xí)心得體會(huì),遞歸調(diào)用程序設(shè)計(jì)舉例
迭代(循環(huán))與遞歸(調(diào)用)對比
(1)二者都是建立在控制結(jié)構(gòu)基礎(chǔ)上的,迭代使用的是循環(huán)結(jié)構(gòu),遞歸使用的是選擇機(jī)構(gòu);
(2)二者都用到了循環(huán),迭代明確使用循環(huán)結(jié)構(gòu),遞歸通過反復(fù)調(diào)用函數(shù)實(shí)現(xiàn)循環(huán);
(3)二者都用到了終止條件測試,迭代在繼續(xù)循環(huán)條件為假時(shí)結(jié)束,遞歸在到達(dá)基本實(shí)例時(shí)終止的。
(4)二者都可能是無限的。
遞歸舉例
1、階乘 N!=N*(N-1)*...*2*1
long factorial(long number)
{
if(number<=1)
return 1;
else
return (number*factorial(number-1));
}
2、求和N+(N-1)+(N-2)+...+2+1
int sum(int number)
{
if(number<=0)
return 0;
else
return (number+sum(number-1));
}