






Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
solución de los ejercicios recursivos.
Tipo: Apuntes
Oferta a tiempo limitado
Subido el 29/07/2020
5
(8)6 documentos
1 / 11
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
En oferta
static void Main(string[] args) { Console.Write("Ingrese capital : "); double capital = double.Parse(Console.ReadLine()); Console.Write("Ingrese interés % : "); double interes = double.Parse(Console.ReadLine()); Console.Write("Ingrese años : "); int años = int.Parse(Console.ReadLine()); Console.Write("El capital final será : "); Console.WriteLine(calcular(capital, interes, años)); Console.ReadLine(); } static double calcular(double cap, double inte, int años) { if (años == 0) return cap; else { return (cap * (inte / 100)) + calcular(cap, inte, años - 1); } }
static void Main(string[] args) { Console.Write("Ingrese tamaño del arreglo : "); int n = int.Parse(Console.ReadLine()); int[] arreglo = new int[n]; Random sd = new Random(); for (int k = 0; k < arreglo.Length; k++) { Console.Write("Ingrese elemento [{0}] : ", k);
arreglo[k] = int.Parse(Console.ReadLine()); } Console.WriteLine("Arreglo inicial"); Imprimir(arreglo); arreglo = invertir(arreglo, arreglo.Length, 0); // Invertir Console.WriteLine("\nArreglo invertido"); Imprimir(arreglo); Console.ReadLine(); } static int[] invertir(int[] arreglo, int n, int m) { if (n == arreglo.Length / 2) return arreglo; else { int temp = arreglo[m]; arreglo[m] = arreglo[n - 1]; arreglo[n - 1] = temp; return invertir(arreglo, n - 1, m + 1); } } static void Imprimir(int[] x) { foreach (int k in x) { Console.Write(k + " "); } }
- Escriba un subprograma recursivo que invierta el orden de una cadena de
static void Main(string[] args) { Console.Write("Ingrese cadena : "); string cadena = Console.ReadLine(); Console.Write("Invertido : " + invertirCadena(cadena.ToCharArray(), cadena.Length, 0)); Console.ReadLine(); } static string invertirCadena(char[] cadena, int n, int m) { if (n == cadena.Length/2) return new string(cadena); else { char aux = cadena[m]; cadena[m] = cadena[n - 1]; cadena[n - 1] = aux; return invertirCadena(cadena, n - 1, m + 1); } }
static void imprimir(string[] a) { foreach (string pais in a) { Console.WriteLine(pais); } }
- Dado como dato el siguiente programa, sígalo y diga qué imprime para los
static void Main(string[] args) { Console.WriteLine("Con X(38) : {0}", pi(38)); Console.WriteLine("Con X(51) : {0}", pi(51)); Console.WriteLine("Con X(24) : {0}", pi(24)); Console.ReadLine(); } static long pi(long x) { if (x > 100) return (x - 8); else return pi(pi(x + 9)); }
- Escriba un subprograma recursivo que busque un valor X en un arreglo
static void Main(string[] args) { Console.Write("Ingrese tamaño : "); int n = int.Parse(Console.ReadLine()); int[] lista = new int[n]; Random p = new Random(); for (int m = 0; m < lista.Length; m++) { //Console.Write("Ingrese elemento [{0}] : ", m); //lista[m] = int.Parse(Console.ReadLine()); lista[m] = p.Next(1, 100); } //Ordenando decreciente int aux = 0; for (int i = 1; i < lista.Length; i++) {
int j = i; while (j >= 1 && lista[j] > lista[j - 1]) { aux = lista[j]; lista[j] = lista[j - 1]; lista[j - 1] = aux; j--; } } foreach (int k in lista) { Console.Write(k + " "); } Console.WriteLine("\nIngrese número a buscar"); int numero = int.Parse(Console.ReadLine()); Console.WriteLine(buscar(lista, lista.Length-1, numero)); Console.ReadLine(); } static string buscar(int[] x, int n, int numero) { if (x[n] == numero) { return "Se encontró el número en la posición " + n; } else if (n == 0) { return "No se halló el número"; } else { return buscar(x, n - 1, numero); } }
- Escriba un subprograma recursivo tal que dado como dato un arreglo
static void Main(string[] args) { Console.Write("Ingrese tamaño (par) : "); int par = int.Parse(Console.ReadLine()); if (par % 2 == 0) { int[] m = new int[par]; for (int i = 0; i < m.Length; i++) { Console.Write("Ingrese dato [{0}] : ", i); m[i] = int.Parse(Console.ReadLine()); } Console.WriteLine(sumas(m, 0));
- Dados como datos dos números enteros positivos A y B, escriba un programa
static void Main(string[] args) { Console.Write("Ingrese A : "); long a = long.Parse(Console.ReadLine()); Console.Write("Ingrese B : "); long b = long.Parse(Console.ReadLine()); Console.WriteLine("{0} elevado a {1} es : {2}", a, b, operar(a, b)); Console.ReadLine(); } static long operar(long a, long b) { if (b == 0) return 1; else { return a * operar(a, b - 1); } }
- Escriba un subprograma recursivo que, dado como dato un número entero
static void Main(string[] args) { Console.WriteLine("Ingrese un número"); long num = long.Parse(Console.ReadLine()); if (num >= 1) { string aux = num.ToString(); if (operar(aux.ToCharArray(), 0) == 1) { Console.WriteLine("Todos los dígitos son pares"); } else { Console.WriteLine("NO todos los dígitos son pares"); } } else { Console.WriteLine("El número no es entero positivo"); } Console.ReadLine(); } static long operar(char[] x, long a) { if (a == x.Length) {
return 1; } else { if (Convert.ToInt64(Convert.ToString(x[a])) % 2 != 0) { return 0; } return operar(x, a + 1); } }
- Escriba un subprograma recursivo que, dado como dato un número entero
static void Main(string[] args) { Console.WriteLine("Ingrese un número"); long num = long.Parse(Console.ReadLine()); long suma = operar(num, num); Console.WriteLine("La suma de los divisores es " + suma); Console.ReadLine(); } static long operar(long num, long aux) { if (aux == 1) { return 1; } else { if (num % aux == 0) { return aux + (operar(num, aux - 1)); } return operar(num, aux - 1); } }
- Escriba un subprograma recursivo que invierta el orden de los elementos de una
static void Main(string[] args) { Stack pila = new Stack(); Stack aux = new Stack(); Console.Write("¿Cuántos datos ingresará a la pila? "); int n = int.Parse(Console.ReadLine());
bool continuar = true; while (continuar) { Console.Write("Ingrese n : "); int n = int.Parse(Console.ReadLine()); if (n >= 3) { int[,] a = new int[n, n]; int aux = n - 2; for (int i = 1; i < a.GetLength(0) - 1; i++) { for (int j = 1; j < a.GetLength(1) - 1; j++) { Console.Write("Ingrese dato [{0},{1}]", i, j); a[i, j] = int.Parse(Console.ReadLine()); a[0, j] += a[i, j]; //Fila arriba a[n - 1, j] += a[i, j]; //Fila abajo a[i, 0] += a[i, j];//Columna 0 a[i, n - 1] += a[i, j];//Columna n- if (i == j) //Diagonal 1 { a[0, 0] += a[i, j]; } } a[0, n - 1] += a[i, aux]; aux--; //Diagonal 2 } a[n - 1, n - 1] = a[0, 0]; a[n - 1, 0] = a[0, n - 1]; Console.WriteLine("La matriz es : "); for (int i = 0; i < a.GetLength(0); i++) { for (int j = 0; j < a.GetLength(1); j++) { Console.Write(a[i, j] + " "); } Console.WriteLine(); } bandera: Console.WriteLine("Desea continuar (c) o salir (s)"); string op = Console.ReadLine(); switch (op) { case "s": continuar = false;
break; case "c": Console.Clear(); break; default: Console.WriteLine("Opción incorrecta"); goto bandera; } } else { Console.WriteLine("{0} no es >= que 3", n); } } Console.ReadLine();