一、信息须知:
递归算法(英语:recursion algorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。
二、非递归普通循环求解最大值
#include <iostream>
using namespace std;
int A[200];
int main()
{
int n;cin>>n;
for(int i=0;i<n;i++){
cin>>A[i];
}
int flag=A[0];
for(int i=2;i<n;i++){
if(A[i]>flag) flag=A[i];//比较,赋值
}
cout<<flag<<endl;
return 0;
}
三、以归纳法设计“递归算法”求最大值
#include <iostream>
//以归纳法设计递归算法求数组最大值
using namespace std;
int A[200];int flag=0;//注意此处flag初值为0
void compare(int i){
if(i>0){
compare(i-1);//递归调用
if(A[i]>A[flag])
flag=i;
}
}
int main()
{
int n;cin>>n;//数组个数
for(int i=0;i<n;i++){
cin>>A[i];
}
compare(n-1);
cout<<A[flag]<< endl;
return 0;
}
|