用递归算法求解数组有没有相同元素的问题
1个回答
展开全部
你的是有几组元素相同还是 某个元素相同的个数?? 说清楚再 我写给你吧
首先要求数组是实现排序的 不然 很难一个递归搞定
这是排序后的数组里面有多少相同的元素的个数
#include<iostream>
using namespace std;
template<class M>
int sum1(const M *a,const M * c,int e)//a是头指针 c是数组末端的下一位
{
if(a==c)
return e;
else{
if(*a==*(a+1)&&*a!=*(a-1))
++e;
return sum1(a+1,c,e);
}
}
int main()
{
int a[]={0,0,0,0,1,1,1,2,3,4,4,5,5,5,6,6,6,7,7,7};
int *p=a;
int *k=a+sizeof(a)/sizeof(a[0]);
int sun=sum1(p,k,0);
cout<<sun<<endl;
}
首先要求数组是实现排序的 不然 很难一个递归搞定
这是排序后的数组里面有多少相同的元素的个数
#include<iostream>
using namespace std;
template<class M>
int sum1(const M *a,const M * c,int e)//a是头指针 c是数组末端的下一位
{
if(a==c)
return e;
else{
if(*a==*(a+1)&&*a!=*(a-1))
++e;
return sum1(a+1,c,e);
}
}
int main()
{
int a[]={0,0,0,0,1,1,1,2,3,4,4,5,5,5,6,6,6,7,7,7};
int *p=a;
int *k=a+sizeof(a)/sizeof(a[0]);
int sun=sum1(p,k,0);
cout<<sun<<endl;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |