http://www.cnblogs.com/cysolo/p/3584059.html?utm_source=tuicool
思路分析:
遞歸嘛之前數組求和已經見識到了,就是自己調用自己嘛。但是,這裡一定要注意一點,凡是要求用“遞歸算法”的,你在遞歸之前一定要先分類讨論,判斷一下目前條件是否允許遞歸,比如一個數組長度就是1,你用遞歸去判斷它裡面的某兩個元素的大小,這就要出Bug了。還有既然遞歸的目的是判斷,那要寫的遞歸函數就是個bool類型的。最最重要的是,數組操作一定要注意下标越界問題,數組下标隻能在0到數組長度減1之間的。
代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
效果如圖:
遞歸的方法,記錄目前最大的,并且判斷目前的是否比這個還大,大則繼續,否則傳回false結束:
bool fun(int a[], int n)
{
if(n= =1)
return true;
if( n= =2 )
return a[n-1] >= a[n-2];
return fun( a,n-1) && ( a[n-1] >= a[n-2] );
}