本题要求使用递归算法,设数组为array,则递归数组满足以下条件。
(1)如果数组长度为1,则该数组为递增,返回true。
(2)如果数组长度为n(n >= 2),则先比较最后两个元素是否递增,如果最后两个元素递增,则再递归比较除去最后一个元素的前 n-1 个元素是否递增。
具体实现如下:
#include <iostream>
bool IsIncrease(int arr[],int len)
{
if (len == 1)
return true;
return (arr[len - 2] <= arr[len - 1]) && IsIncrease(arr, len-1);
}
int main(int argc, const char * argv[]) {
int arr[] = {1,2,3,4,5,6,7};
int len = sizeof(arr)/sizeof(int);
if (IsIncrease(arr, len))
printf("arr是递增数组\n");
else
printf("arr不是递增数组\n");
return 0;
}
输出如下: