JavaScript - tengo el siguiente problema con recursividad y no sé como solucionarlo

 
Vista:
sin imagen de perfil

tengo el siguiente problema con recursividad y no sé como solucionarlo

Publicado por Sergio (1 intervención) el 16/07/2021 15:59:04
Hola buenos días, tengo el siguiente problema con recursividad y no sé como solucionarlo, agradecería un ayuda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Secuencia inventada: f(n) = f(n-1) x f(n-2) - f(n-2)
// Siendo f, secuenciaHenry.
// Donde las primeras dos posiciones son dadas por el parametro recibidos y a partir de
// la siguiente se calcula como la multiplicación de los 2 números anteriores restados al número anterior.
// object es un objeto del cual debemos obtener f(0) y f(1) siguiendo la siguiente lógica:
// f(0) será el valor de la propiedad llamada 'first'
// f(1) será un número igual a la cantidad de propiedades de obj
// Por ejemplo si recibimos:
// var obj = {
//   1: true,
//   first: 2,
//   7: ['F','r','a','n','c','o!'],
//   h: {a: 1},
//   z: [],
//   a: 1,
//   b: 2,
//   c: 3,
//   d: 4
// }
// deberíamos tener los siguientes 2 valores iniciales
// secuenciaHenry(0) = 2 y secuenciaHenry(1) = 9
// A partir de ahí la tercera posición sería  9 x 2 - 2 = 16 y así sucesivamente
// La función secuenciaHenry debe devolver el enésimo numero de la serie, por ejemplo para el objeto
// antes mencionado:
// secuencia: 2, 9, 16, 135, 2144, 289305
// secuenciaHenry(0) // 2  ya que el elemento de la posición 0 es cero
// secuenciaHenry(1) // 9 ya que el elemento de la posición 1 es 1
// secuenciaHenry(5) // 289305 ya que el elemento de la posición 5 es 289305
// Para números negativos de n debe devolver null
// PISTA: Pueden utilizar el método Object.keys() para f(1)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de algoritmo
Val: 37
Ha aumentado su posición en 2 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

tengo el siguiente problema con recursividad y no sé como solucionarlo

Publicado por algoritmo (29 intervenciones) el 17/07/2021 16:59:25
Hola

Espero que te sirva :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var obj = {
   1: true,
   first: 2,
   7: ['F','r','a','n','c','o!'],
   h: {a: 1},
   z: [],
   a: 1,
   b: 2,
   c: 3,
   d: 4
}
 
function secuenciaHenry(n){
	if (n==0){
		return obj['first'];
	}else if (n == 1){
		return Object.keys(obj).length;
	}else if (n <= 0){
		return null;
	}else{
		return secuenciaHenry(n-1)*secuenciaHenry(n-2)-secuenciaHenry(n-2);
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar