Buscar AlgoritmosContactoCrear una función recursiva externa (fuera de la clase o estructura de datos PILA) que verifique si la cantidad de elementos de una pila cualquiera es un número primo.
Ejemplo de llamada a la función:
x = verifica_cantidad(pila);
algoritmo - código fuente - pseudocódigo /*
Se supone que existe una clase pila que tiene esta estructura:
class pila {
propieda cima
metodo push (x)
metodo pop() : devuelve y actualiza la cima
metodo empty() : devuelve true si no hay elementos
}
*/
/* hacer una copia de la pila antes de pasar por aquí */
int r_verifica_cantidad (pila p) {
if (p.empty ())
return 0;
else {
p.pop(); /* quita un elemento */
return 1 + r_verifica_cantidad(p); /* 1 elemento + los que queden en la pila */
}
}
int verifica_cantidad (pila p) {
int n = r_verifica_cantidad (p); /* numero de elementos */
return es_primo (n); /* una función que verifica si un número es primo */
}
¿cómo funciona? La recursión lo único que hace es contar de 1 en 1 los elementos que van siendo extraídos de la pila (sabiendo que la pila solo puede hacer push o pop cada vez). Se puede "rehacer" la pila luego dentro de la misma función, pero eso no es parte de este problema
Si pila tiene 5 elementos, la función recursiva hace:
pop
1 + f (pila)
pop
1 + 1 + f (pila)
pop
1 + 1 + f (pila)
pop
1 + 1 + 1 + f (pila)
pop
1 + 1 + 1 + 1 + f (pila)
pop
1 + 1 + 1 + 1 + 1 + f (pila)
¡empty!
f(pila) = 0 en el último caso
Entonces 1 + 1 + 1 + 1 + 1 + 0 = 5
Luego se verifica si es primo o no.
Se tienen dos números enteros almacenados en dos pilas. Se desea sumar ambos números y almacenar el resultado en una tercera pila.
Cada nodo representa un dígito del... [sigue]
Se tiene una Pila cualquiera con una cierta cantidad de elementos, dentro de los cuales pueden haber elementos repetidos. Escriba un algoritmo, procedimiento o función en código... [sigue]
Función que calcula y retorna la desviación estándarImplementar una función que reciba un arreglo de flotantes y la longitud del arreglo. La función debe regresar la desviación estándar obtenida de los elementos del arreglo.
Encontrar la cadena inmediatamente mayor en un arregloSe tiene un arreglo de cadenas y se desea introducir una nueva cadena al arreglo. Crear una función que devuelva el índice donde debería insertarse la nueva cadena, sabiendo que... [sigue]
Encontrar la palabra más larga y su número de caracteresIngresar una frase por teclado y determinar cuál es la palabra más larga y el número de caracteres de dicha palabra.
Sin funciones de cadena. Utilice comparación 1 a 1.
Solicitar un texto por entrada estándar y contar el número de letras que contiene. Recorrer la cadena usando while y hacer la comparación.
Retornar el menor elemento de un arreglo de estructuras recursivamenteSuponiendo que se tiene una estructura (struct) llamada Empleado y ésta contiene un campo entero llamado sueldo.
Crear una función recursiva que devuelva el menor de los... [sigue]
Se desea una función que determine si una frase es un palíndrome (se lee igual de izquierda a derecha que de derecha a izquierda).
Sustituir varios espacios en blanco dentro de una fraseEscribir un programa que lea una frase, sustituya todas las secuencias de dos o más espacios por un solo espacio y a continuación visualice la frase resultante.
Nota: El... [sigue]