Home »
C++ programs
C++ program to find Last occurrence of a Number using Recursion in an array
Here, we are implementing a C++ program that will find the last occurrence of a number using recursion in an array.
Submitted by Indrajeet Das, on December 09, 2018
Given an array of length N and an integer x, you need to find and return the last index of integer x present in the array. Return -1 if it is not present in the array. Last index means - if x is present multiple times in the array, return the index at which x comes last in the array.
You should start traversing your array from 0, not from (N - 1). Do this recursively. Indexing in the array starts from 0.
Input Format:
- Line 1 : An Integer N i.e. size of array
- Line 2 : N integers which are elements of the array, separated by spaces
- Line 3 : Integer x
Output Format: last index or -1
Constraints: 1 <= N <= 10^3
Example
Input:
4
9 8 10 8
8
Output:
3
Description:
Here, we have to find the last occurrence of x. Therefore, in this example the last occurrence of 8 happens in index 3, and hence the output is 3.
Algorithm:
Step 1: To solve this using recursion, make a recursion function with inputs, and a variable currIndex to traverse the input array.
Step2: Base Case:- If currIndex == size of the input array, return -1, i.e element not found.
Step3: Take input of next recursion call ,withcurrIndex incremented by 1 , in a variable ‘index’.
Step 4:
If(index == -1 && input[currIndex] == x)
Return currIndex
Else
Return index;
C++ Source Code/Function:
#include<bits/stdc++.h>
using namespace std;
int lastIndex(int input[], int size, int x, int currIndex){
if(currIndex== size){
return -1;
}
int index = lastIndex(input,size,x,currIndex+1);
if(index == -1 && input[currIndex] == x){
return currIndex;
}
else{
return index;
}
}
int main(){
int input[] = {9,8,10,8};
int x = 8;
int size = 4;
cout<<lastIndex(input,size,x,0);
return 0;
}
Output
3