回 帖 发 新 帖 刷新版面

主题:[讨论]求解C++递归题目!!

// If all n2 elements of a2 appear in the n1 element array a1, in
   // the same order (though not necessarily consecutively), then
   // return true; otherwise (i.e., if the array a1 does not include
   // a2 as a not-necessarily-contiguous subsequence), return false.
   // (Of course, if a2 is empty (i.e., n2 is 0), return true.)
   // For example, if a1 is the 7 element array
   //    10 50 40 20 50 40 30
   // then the function should return true if a2 is
   //    50 20 30
   // or
   //    50 40 40
   // and it should return false if a2 is
   //    50 30 20
   // or
   //    10 20 20
bool includes(const double a1[], int n1, const double a2[], int n2)
{
     return false;  // This is not always correct.
}



[b]只能用递归,You must not use any static or global variables [/b]

不能用任何for,while等循环

回复列表 (共1个回复)

沙发

bool includes(const double a1[], int n1, const double a2[], int n2)
{
     if(n2==0)
         return true;
     if(n1==0)
         return false;
     if(a1[n1]==a2[n2])
         return includes(a1,n1-1,a2,n2-1);
     return includes(a1,n1-1,a2,n2);
}


没有测试过,思想应该没错

我来回复

您尚未登录,请登录后再回复。点此登录或注册