C51學(xué)習(xí)心得體會,遞歸調(diào)用程序設(shè)計舉例
迭代(循環(huán))與遞歸(調(diào)用)對比
(1)二者都是建立在控制結(jié)構(gòu)基礎(chǔ)上的,迭代使用的是循環(huán)結(jié)構(gòu),遞歸使用的是選擇機構(gòu);
(2)二者都用到了循環(huán),迭代明確使用循環(huán)結(jié)構(gòu),遞歸通過反復(fù)調(diào)用函數(shù)實現(xiàn)循環(huán);
(3)二者都用到了終止條件測試,迭代在繼續(xù)循環(huán)條件為假時結(jié)束,遞歸在到達基本實例時終止的。
(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));
}