美团外卖商家如何接单:编写程序

来源:百度文库 编辑:高考问答 时间:2024/04/28 01:21:44
编写具有如下函数原型的递归与非递归两种函数equ,负责判断数组a与b的前n个元素值是否按下标对应完全相同,是则返回true,否则返回false。并编制主函数对它们进行调用,以验证其正确性。
bool equ(int a[], int b[], int n);
提示:递归函数中可按如下方式来分解并处理问题,先判断最后一个元素是否相同,不同则返false;相同则看n是否等于1,是则返回true,否则进行递归调用(传去实参a、b与 n-1,去判断前n-1个元素的相等性),并返回递归调用的结果(与前n-1个元素的是否相等性相同)。

非递归
bool equ(int a[], int b[], int n)
{
for(int i=0;i<n;i++)
{
if(a[i]!=b[i])
return false;
}
return true;
}
递归
bool equ(int a[], int b[], int n)
{
if(a[n-1]!=b[n-1])
return false;
else
if(n==1)
return true;
else
equ(a,b,n-1);
}

首先递归:
bool equ(int a[], int b[], int n)
{
(1>=n)&&(n=1,a[n-1]==b[n-1])?return true:a[n-1]== b[n-1]?return equ(a,b,n-1):return false;
}

再来看非递归:

bool(int a[],int b[], int n)
{
while(1)0>=n&&a[--n]!=b[--n]?return false:0>=n?return true;
}