programa en C ++ para encontrar presencia de un número X de la matriz de forma recursiva

Aquí, estamos implementando un programa C ++ para encontrar la presencia de un número X de la matriz de forma recursiva .

Dada una matriz de longitud N y un entero X , es necesario encontrar todos los índices en donde está presente en la matriz de entrada X . Guardar todos los índices de una matriz (en orden creciente).
Hacer esto de forma recursiva. Indexación de la matriz comienza desde 0.

formato de entrada:

    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

Formato de salida:

    indexes where x is present in the array (separated by space)

restricciones:

    1 <= N <= 10^3

Ejemplo:

    Input:
5
9 8 10 8 8
8
Output:
1 3 4

Descripción:

Aquí, el elemento tenemos que encontrar en la matriz es de 8. por lo tanto, el elemento 8 presente en la matriz están en índices 1 3 4 que sale como la salida.

Algoritmo:

para encontrar los elementos utilizando la recursividad, llamamos a una función recursiva mantener una matriz de salida, su tamaño y una variable currIndex class transversal de la matriz de entrada. El class base de esta función será si currIndex es igual al tamaño de matriz de entrada. es decir que hemos terminado de atravesar la matriz. En cada llamada recursiva, el elemento de entrada en currIndex se compara con ‘x’, y si coincide se almacena entonces dentro de la matriz de salida (y por tanto incrementar el tamaño de la matriz de salida en 1). Siguiente llamada recursiva se hace incrementando el currIndex .

Código fuente / Funciones:

#include <bits/stdc++.h>
using namespace std;
void findIndices(int input[], int size, int x, int output[], int &k, int currIndex){
if(currIndex==size){
return;
}
if(input[currIndex]==x){
output[k] = currIndex;
k++;
}
findIndices(input,size,x,output,k,++currIndex);
}
int allIndices(int input[], int size, int x, int output[]){
int k = 0;
findIndices(input,size,x,output,k,0);
return k;
}
int main(){
int size = 5;
int input[] = {9,8,10,8,8};
int x = 8;
int output[5];
int outputSize = allIndices(input,size,x,output);
for(int i =0;i<outputSize;i++){
cout<<output[i]<<" ";
}
return 0;
}

salida

1 3 4


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *