[đệ quy c/c++] đếm số phần tử phân biệt trong mảng
7. Sử dụng đệ quy, viết hàm đếm các giá trị phân biệt trong mảng các số nguyên. (các giá trị trùng nhau chỉ đếm một lần).
#include<iostream>
using namespace std;
int dem(int a[],int left,int right)
{
if(left>right) return 0;
for(int i=left+1;i<=right;i++)
if(a[left]==a[i]) return dem(a,left+1,right);
return 1+dem(a,left+1,right);
}
void main()
{
int a[10]={17,14,21,28,17,42,49,56,63,17},n=10;
cout<<dem(a,0,n-1);
system("pause");
}
#include<iostream>
using namespace std;
int dem(int a[],int left,int right)
{
if(left>right) return 0;
for(int i=left+1;i<=right;i++)
if(a[left]==a[i]) return dem(a,left+1,right);
return 1+dem(a,left+1,right);
}
void main()
{
int a[10]={17,14,21,28,17,42,49,56,63,17},n=10;
cout<<dem(a,0,n-1);
system("pause");
}