Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
RESUELTOS EN
JAVA
Temas:
1. Algoritmos secuenciales
2. Algoritmos de selección
3. Algoritmos de selección multiple
4. Algoritmos de repetición (do-while)
5. Algoritmos de repetición (while)
6. Algoritmos de repetición anidadas
7. Algoritmos de repetición (for)
8. Modularidad con procedimiento y funciones
(public static)
9. Recursividad
ALGORITMOS SECUENCIALES
//... Algoritmo que Lee el nombre, apellido, edad, peso de un estudiante y lo imprime
import java.io.*;
public class a_leer {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado = new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
String nombre, apellidos;
int edad;
float peso;
//... Leer nombre de la persona
System.out.print("Ingresar nombre: "); nombre= teclado.readLine();
//... Leer apellido paterno y materno de la persona
System.out.print("Ingresar apellidos: "); apellidos= teclado.readLine();
//... Leer edad de la persona
System.out.print("Ingresar edad: "); edad= Integer.parseInt(teclado.readLine());
//... Leer peso de la persona
System.out.print("Ingresar peso (Kgr): "); peso= Float.parseFloat(teclado.readLine());
//... Imprimir el ingreso de datos
System.out.println();
System.out.println("El estudiante es");
System.out.println("Nombre: "+nombre);
System.out.println("Apellidos: "+apellidos);
System.out.println("Edad y Peso: "+edad+" años, y "+peso+" Kgr");
}
}
/* Una liebre y una tortuga parten en el mismo instate, del mismo punto y en el mismo
sentido. La liebre corre a razon de 400 metros por minuto y la tortuga a razon de 0.6
metros por minuto.
Escribir un algoritmo que determine la distancia entre la liebre y la tortuga al cabo de T
minutos */
import java.io.*;
public class i_liebreTortuga {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado = new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
int minTiempo;
double distancia;
//... Leer tiempo
System.out.print("Leer tiempo (minutos):");
minTiempo= Integer.parseInt(teclado.readLine());
//... Calcular la distancia y la tortuga
distancia= minTiempo*(400-0.6);
//... Imprimir la distancia entre la liebre y la tortuga
System.out.println("Distancia: "+(float)distancia);
}
}
/* Se deja caer una pelota desde una altura h. Al caer al suelo rebota hasta alcanzar los
3/4 de la altura inicial y luego vuelve a caer y rebotar hasta alcanzar los 3/4 de la altura
anterior y asi sucesivamente.
Escribir un algoritmo que calcule la altura que alcanzara en el n-esimo rebote. */
import java.io.*;
public class j_rebote {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado = new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
int ho, n;
double hFinal;
//... Leer altura inicial y numero de rebotes
System.out.print("Leer altura inicial: "); ho= Integer.parseInt(teclado.readLine());
System.out.print("Leer numero de rebote:"); n= Integer.parseInt(teclado.readLine());
//... Calcular la altura final
hFinal= Math.pow(3.0/4,n)*ho;
//... Imprimir la altura final al cabo de n-rebotes
System.out.println("Altura final:"+hFinal);
}
}
//... Algoritmo que invierte el orden de los digitos de un numero de tres digitos
import java.io.*;
public class n_invertir {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado = new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
int nro, unid, dec, cent, nroInv;
//... leer numero
System.out.print("Leer numero: "); nro= Integer.parseInt(teclado.readLine());
//... Invertir numero
unid= nro%10;
dec= (nro/10)%10;
cent= nro/100;
nroInv= unid*100+dec*10+cent;
//... Imprimir resultado
System.out.println("El numero invertido sera: "+nroInv);
}
}
/* Algoritmo que calcule el numero minimo de billetes de 100, 50, 20, 10, monedas de 5 y 1
(Nuevos Soles) necesarias para cambiar un Cheque Bancario
Nota: El cheque bancario no contiene centimos */
import java.io.*;
public class p_billetes {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado = new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
int monto, b100, b50, b20, b10, m5, m1, resto;
//... Leer monto
System.out.print("Leer monto: "); monto= Integer.parseInt(teclado.readLine());
//... Calcular numero de billetes
b100= monto/100;
resto= monto%100;
b50= resto/50;
resto= resto%50;
b20= resto/20;
resto= resto%20;
b10= resto/10;
resto= resto%10;
m5= resto/5;
m1= resto%5;
//... Imprimir resultados
System.out.println("Billetes de S/. 100 :"+b100);
System.out.println("Billetes de S/. 50 :"+b50);
System.out.println("Billetes de S/. 20 :"+b20);
System.out.println("Billetes de S/. 10 :"+b10);
System.out.println("Monedas de S/. 5 :"+m5);
System.out.println("Monedas de S/. 1 :"+m1);
}
}
if(nro1!=nro2){
if(nro1>nro2) mayor= nro1;
else mayor= nro2;
System.out.println(mayor+" es el mayor");
}
else System.out.println("Son iguales");
}
}
//... Algoritmo que permite ordenar dos numeros en forma ascedente
import java.io.*;
public class f_ordenar {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado = new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
int nro1, nro2, aux;
//... leer numeros
System.out.print("Leer 1er numero: "); nro1= Integer.parseInt(teclado.readLine());
System.out.print("Leer 2do numero: "); nro2= Integer.parseInt(teclado.readLine());
//... Ordenando numeros
if(nro1>nro2){ //... Intercambiar
aux= nro1;
nro1= nro2;
nro2= aux;
}
System.out.println(nro1+">"+nro2);
}
}
if(mayor<nro3)
mayor= nro3;
//... Imprimir el mayor numero
System.out.println("El mayor sera: "+mayor);
}
}
//... Algoritmo que lee el mes y año de una fecha y determina el numero de dias
import java.io.*;
public class a_nroDias {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado = new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
int mes, anio, nroDias= 0;
//... Leer mes y año
System.out.print("Leer mes: "); mes= Integer.parseInt(teclado.readLine());
System.out.print("Leer año: "); anio= Integer.parseInt(teclado.readLine());
//... Determinar numero de dias del mes
switch(mes){
case 1: nroDias= 31; break; case 3: nroDias= 31; break;
case 5: nroDias= 31; break; case 7: nroDias= 31; break;
case 8: nroDias= 31; break; case 10: nroDias= 31; break;
case 12: nroDias= 31;break;
case 2:if(anio%4==0)
nroDias= 29;
else
nroDias= 28;
break;
}
if(nroDias!=0)
System.out.println("El "+mes+"/"+anio+" contiene:"+nroDias+" dias");
else
System.out.println("Fecha ingresada es incorrecta");
}
}
ALGORITMOS DE REPETICIÓN (DO-WHILE)
//... Algoritmo que imprime "Programar es facil" y los multiplos de 5 (cinco veces)
public class a_acumulador {
public static void main(String[] args) {
//... Declarar variables
String mensaje= "Programar es facil:";
int k= 1;
//... Imprimiendo
System.out.println(mensaje+k);
k= k+1;
System.out.println(mensaje+k);
k= k+1;
System.out.println(mensaje+k);
k= k+1;
System.out.println(mensaje+k);
k= k+1;
System.out.println(mensaje+k);
}
}
//... Algoritmo que imprime la tabla de multiplicar hasta el doce de un numero "n"
import java.io.*;
public class h_tablaMultiplicar {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado = new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
int n, k ,mult;
//... Leer N
System.out.print("Leer n: "); n= Integer.parseInt(teclado.readLine());
//... Construir tabla de multiplicar
k= 1;
do{ mult= n*k; System.out.println(n+" x "+k+" = "+mult);
k++;
}while(k<=12);
}
}
/* Se tiene una relacion de n-estudiantes, para cada uno se tiene tres notas.
Escribir un algoritmo que calcule el promedio de cada estudiante. */
import java.io.*;
public class k_promedio {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado = new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
int n, k, nota1, nota2, nota3;
double promedio;
//... Ingresar datos
System.out.print("Ingresar numero de estudiantes: ");
n= Integer.parseInt(teclado.readLine());
//... Calcular el promedio de los n-estudiantes
k= 1;//... Inicializando variables
do{
System.out.println("Estudiante "+k);
System.out.print("Ingresar primera nota:");
nota1= Integer.parseInt(teclado.readLine());
System.out.print("Ingresar segunda nota:");
nota2= Integer.parseInt(teclado.readLine());
System.out.print("Ingresar tercera nota:");
nota3= Integer.parseInt(teclado.readLine());
//... Calcular el promedio
promedio= (nota1+nota2+nota3)/(3.0);
System.out.println("Promedio del estudiante "+k+" sera:"+(float)promedio);
k++;
}while(n>=k);
}
}
//... Algoritmo que calcula la suma de los n-primeros numeros enteros positivos
import java.io.*;
public class l_sumaPositivos {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado = new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
int n, k, suma;
//... Leer n-primeros
System.out.print("Leer n: "); n= Integer.parseInt(teclado.readLine());
//... Calcular la suma de los n-primeros
k= 1; //... Inicializar variables
suma= 0;
do{
suma= suma + k;
k++;
}while(n>=k);
//... Imprimir resultados
System.out.println("La suma de los "+n+"-primeros sera:"+suma);
}
}
/* Algoritmo que calcula el cociente y residio entero de la division de dos numeros enteros
mediante restas sucesivas */
import java.io.*;
public class e_cocienteResto {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado= new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
int dividendo, divisor, cociente, resto;
//... Ingresar numeros
System.out.print("Ingresar dividendo: ");
dividendo= Integer.parseInt(teclado.readLine());
System.out.print("Ingresar divisor: "); divisor= Integer.parseInt(teclado.readLine());
//... calcular el cociente y del residuo
cociente= 0;
resto= dividendo;
while(resto-divisor >= 0){
resto= resto - divisor;
cociente++;
}
System.out.println("Cociente: "+cociente+", Desiduo: "+resto);
}
}
/* Algoritmo que permita calcular el producto de dos numero enteros positivos utilizando el
algoritmo ruso de la multiplicacion */
import java.io.*;
public class f_productoRuso {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado= new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
int nro1, nro2, factor1, factor2, producto;
//... Ingresar numeros
System.out.print("Ingresar primer numero: ");
nro1= Integer.parseInt(teclado.readLine());
System.out.print("Ingresar segundo numero: ");
nro2= Integer.parseInt(teclado.readLine());
//... Calcular la multiplicacion rusa
factor1= nro1;
factor2= nro2;
producto= 0;
while(factor2>0){
if(factor2%2 == 1) //... Impar
producto= producto+factor1;
factor1= factor1*2;
factor2= factor2/2;
}
//... Imprimir resultados
System.out.println(nro1+"x"+nro2+"="+producto);
}
}
//... Algoritmo que que calcule el factorial de los n-primeros enteros positivos
import java.io.*;
public class a_factorial {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado= new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
int n, k, j, factorial;
//... Leer n
System.out.print("Leer n: "); n= Integer.parseInt(teclado.readLine());
//... Calculando el factorial de los n-primeros enteros
k= 1;
while(n>=k){
j= k;
factorial= 1;
while(j>0){ //... Calculando factorial
factorial= factorial*j;
j--;
}
System.out.println("Factorial de "+k+" sera:"+factorial);
k++;
}
}
}
ALGORITMOS DE REPETICIÓN (FOR)
/* Algoritmo que determina la nota mas baja, la mas alta, el promedio, el numero de
aprobados, desaprobado y reprobados */
import java.io.*;
public class c_tipoNota {
public static void main(String[] args) throws IOException{
//... Definimos variable para leer datos e ingresados desde el teclado
BufferedReader teclado;
teclado= new BufferedReader(new InputStreamReader(System.in));
//... Declarar variables
int n, menor, mayor, aprob, desap, reprob, nota;
float promedio;
//... Ingresar numero de estudiantes
System.out.print("Ingresar numero de estudiantes: ");
n= Integer.parseInt(teclado.readLine());
//... Inicializando variables
menor= 20; mayor= 0; aprob= 0; desap= 0; reprob= 0;
promedio= 0;
for(int i= 1; i<=n; i++){
System.out.print("Ingresar nota del estudiante "+i+": ");
nota= Integer.parseInt(teclado.readLine());
//... Calculando requerimiento
if(menor>nota) //... verificando si hay una nota menor
menor= nota;
if(mayor<nota) //... verificando si hay una nota mayor
mayor= nota;
//... Acumulando las notas
promedio= promedio+nota;
//... Calculando numero de aprobados, desaprobados y reprobados
if(nota<7) reprob++; //... Incrementamos el numero de reprobados
else
if(nota<11) desap++; //... Incrementamos el numero de desaprobados
else aprob++; //... Incrementamos el numero de aprobados
}
promedio= promedio/n; //... Calculando el promedio
//... Imprimir resultados
System.out.println("La nota mas baja sera: "+menor);
System.out.println("La nota mas alta sera: "+mayor);
System.out.println("Hay "+aprob+" estudiantes aprobados");
System.out.println("Hay "+desap+" estudiantes desaprobados");
System.out.println("Hay "+reprob+" estudiantes reprobados");
System.out.println("El promedio aritmetico sera:"+promedio);
}
}
//... En esta seccion se creara un solo programa principal que contenga varios modulos
import java.io.*;
public class a_modulos {
//...Programa modular que retorna el mayor de dos numeros
public static int mayor(int nro1, int nro2){
if(nro1>nro2)
return nro1;
else return nro2;
}
//...Programa modular que retorna el menor de dos numeros
public static int menor(int nro1, int nro2){
if(nro1>nro2)
return nro2;
else return nro1;
}
//...Programa modular que determina el mayor de tres numeros
public static int mayor(int nro1, int nro2, int nro3){
return mayor(mayor(nro1,nro2),nro3);
}
//...Programa modular que determina el mayor de cuatro numeros
public static int mayor(int nro1, int nro2, int nro3, int nro4){
return mayor(mayor(nro1,nro2),mayor(nro3, nro4));
}
//...Programa modular que determina el menor de tres numeros
public static int menor(int nro1, int nro2, int nro3){
return menor(menor(nro1,nro2),nro3);
}
//...Programa modular que determina el menor de cuatro numeros
public static int menor(int nro1, int nro2, int nro3, int nro4){
return menor(menor(nro1,nro2),menor(nro3,nro4));
}
//...Programa modular que ordena dos numeros de forma ascendente
public static void ordenaAscendente(int nro1, int nro2){
if(nro1>nro2){
int aux= nro1;
nro1= nro2;
nro2= aux;
}
System.out.println(nro1+"<"+nro2);
}
//...Programa que valida las notas ingresadas desde el teclado
public static int leerNota(BufferedReader teclado) throws IOException{
int nota;
do{ System.out.print("Leer nota: "); nota= Integer.parseInt(teclado.readLine());
}while(nota<0 || nota>20);
return nota;
}
//...Programa que valida un entero ingresadas desde el teclado
public static int leerEntero(int min, int max, String texto, BufferedReader teclado)
throws IOException{
int entero;
do{ System.out.print(texto); entero= Integer.parseInt(teclado.readLine());
}while(entero<min || entero>max);
return entero;
}
//...Programa que calcula el promedio de tres notas, validandola
public static double promedio(BufferedReader teclado) throws IOException{
int nota1= leerNota(teclado);
int nota2= leerNota(teclado);
int nota3= leerNota(teclado);
//... Calcular promedio
return (nota1+nota2+nota3)/3.0;
}
//...En un examen de suficiencia cuatro jurados emiten una nota entre cero
//y veinte. para optener el promedio final solo se considera las notas
//intermedias, descartandose la mas alta y la mas baja. Escribir un programa
//modular para calcular el promedio
public static double Suficiencia(BufferedReader teclado) throws IOException{
int nota1= leerNota(teclado);
int nota2= leerNota(teclado);
int nota3= leerNota(teclado);
int nota4= leerNota(teclado);
//... Calcuylando el mayor y el menor
int mayor= mayor(mayor(nota1, nota2),mayor(nota3, nota4));
int menor= menor(menor(nota1, nota2),menor(nota3, nota4));
return (nota1+nota2+nota3+nota4-mayor-menor)/2.0;
}
//...Programa modular que calcula el factorialde un numero
public static int factorial(int nro){
int fact= 1;
for(int i=1; i<=nro; i++)
fact= fact*i;
//... Retornando el factorial del numero
return fact;
}
//...Programa que convierte grados sexagesimales a radianes
public static double sexRadianes(int angulo){
return angulo*Math.PI/180;
}
//...Escribir un programa modular que clacule el seno de un algulo a partir
//de la siguiente expresion
//Seno(x)=(x1/1!)-(x3/3!)+(x5/5!)-(x7/7!)+...
//Donde x hay que convertirlo a radianes
public static double seno(int angulo){
double expresion=0,angRadianes=sexRadianes(angulo),num=angRadianes;
int den=1, signo= 1, impar= 1;
do{
expresion= expresion+signo*(num/den);
num= num*(angRadianes*angRadianes);
impar= impar+2;
den= den*(impar-1)*(impar);
signo= signo*(-1);
}while(0.0001<num/den);
//... retornar el seno del angulo
return expresion;
}
//...Programa modular que dada dos fechas determine la fecha posterior (la fecha ultima)
public static String fechaPosterior1(int d1,int m1,int a1,int d2,int m2,int a2){
if(a1>a2)
return d1+"/"+m1+"/"+a1;
else
if(a1<a2)
return d2+"/"+m2+"/"+a2;
else //...Los años son iguales
if(m1>m2)
return d1+"/"+m1+"/"+a1;
else
if(m1<m2)
return d2+"/"+m2+"/"+a2;
else //... Los meses son iguales
if(d1>d2)
return d1+"/"+m1+"/"+a1;
else
if(d1<d2)
return d2+"/"+m2+"/"+a2;
else return "Las fechas son iguales";
}
//...Programa modular que dada dos fechas determine la fecha posterior
//(la fecha ultima)
public static String fechaPosterior2(int d1,int m1,int a1,int d2,int m2,int a2){
if(d1+m1*100+a1*10000!=d2+m2*100+a2*10000)
if (d1+m1*100+a1*10000>d2+m2*100+a2*10000)
return d1+"/"+m1+"/"+a1;
else
return d2+"/"+m2+"/"+a2;
else
return "Las fechas son iguales";
}
//...Programa modular que valida un numero entre un maximo y un minimo
public static int validaEntero(int min,int max,BufferedReader teclado)
throws IOException{
int entero;
do{
System.out.print("Leer nro Entero: "); entero= Integer.parseInt(teclado.readLine());
}while(entero<min || entero>max);
//... Retornar numero validado
return entero;
}
//...Programa modular que determina el numero de dias de una fecha ingresada
public static int nroDias(int mes, int anio){
int nroD= 0;
switch(mes){
case 1: nroD=31; break;
case 3: nroD=31; break;
case 5: nroD=31; break;
case 7: nroD=31; break;
case 8: nroD=31; break;
case 10: nroD=31; break;
case 12: nroD=31; break;
case 4: nroD=30; break;
case 6: nroD=30; break;
case 9: nroD=30; break;
case 11: nroD=30; break;
case 2: if(anio%4==0)
nroD=29;
else nroD=28; break;
}
return nroD;
}
//...Programa modular que determina la fecha anterior a la dada
public static String fechaAnterior(int dia, int mes, int anio){
if(dia>1)
dia= dia-1;
else //... dia 01
if(mes>1){
mes= mes-1;
dia= nroDias(mes,anio);
}
else{//...dia=1, mes=1
dia= 31;
mes= 12;
anio= anio-1;
}
return dia+"/"+mes+"/"+anio;
}
/* Se lee n-notas en un salon de clase y se desea determinar la nota mayor la nota
menor, el promedio de notas, numero de aprobados, desaprobados y reprobados */
public static void nNotas(int nro,BufferedReader teclado)throws IOException{
//... Declarando e inicializando variables
int nota, suma= 0, aprobado= 0, desaprobado= 0, reprobado= 0;
int mayor= 0, menor= 20;
float promedio;
for(int i=1; i<=nro; i++){
nota= leerNota(teclado);
//... Calculando la mayor y menos nota
if(nota>mayor)
mayor= nota;
if(nota<menor)
menor= nota;
//... Sumando la nota ingresada
suma= suma+nota;
//... Determinar si la nota es aprobatoria, desaprobatoria o reprobatoria
if(nota<7)
reprobado++;
else
if(nota<11)
desaprobado++;
else
aprobado++;
}
System.out.println("La nota mayor sera: "+mayor);
System.out.println("La nota menor sera: "+menor);
System.out.println("El numero de aprobados sera: "+aprobado);
System.out.println("El numero de desaprobados sera: "+desaprobado);
System.out.println("El numero de reprobados sera: "+reprobado);
//... Calculando el promedio
promedio= (float)suma/nro;
System.out.println("El promedio sera:"+promedio);
}
//...PROGRAMA PRINCIPAL
public static void main(String[] args) throws IOException{
// Declarar variable de lectura
BufferedReader teclado;
teclado= new BufferedReader(new InputStreamReader(System.in));
}
}
/* Escribir un programa que muestre en la pantalla las tablas de sumar y multiplicar de los
numeros del uno al doce */
import java.io.*;
public class b_tablas {
public static void menu(){
System.out.println("*****************************");
System.out.println("*TABLA SUMA Y MULTIPLICACION*");
System.out.println("*****************************");
System.out.println("* 1.- Tabla de Sumar *");
System.out.println("* 2.- Tabla de Restar *");
System.out.println("* 3.- Tabla de Multiplicar *");
System.out.println("* 4.- Tabla de Dividir *");
System.out.println("* 5.- Tabla de Potencia *");
System.out.println("* 6.- Salir *");
System.out.println("*****************************");
System.out.print("Ingrese su opcion: ");
}
public static void tablaSuma(int nro){
for(int i= 1; i<=12; i++)
System.out.println(nro+"+"+i+"="+(i+nro));
}
public static void tablaRestar(int nro){
for(int i= 1; i<=12; i++)
System.out.println(nro+"-"+i+"="+(nro-i));
}
public static void tablaMultiplicacion(int nro){
for(int i= 1; i<=12; i++)
System.out.println(nro+"x"+i+"="+(i*nro));
}
public static void tablaDividir(int nro){
for(float i= 1; i<=12; i++)
System.out.println(nro+"/"+i+"="+(nro/i));
}
public static void tablaPotencia(int nro){
int potencia= nro;
for(int i= 1; i<=12; i++){
System.out.println(nro+"^"+i+"="+potencia);
potencia= potencia*nro;
}
}
//… PROGRAMA PRINCIPAL
public static void main(String[] args) throws IOException{
// Declarar variable de lectura
BufferedReader teclado;
teclado= new BufferedReader(new InputStreamReader(System.in));
int nro, opcion;
do{
menu();
opcion= Integer.parseInt(teclado.readLine());
switch(opcion){
case 1:
System.out.print("De que numero:"); nro= Integer.parseInt(teclado.readLine());
tablaSuma(nro);
break;
case 2:
System.out.print("De que numero:");
nro= Integer.parseInt(teclado.readLine());
tablaRestar(nro);
break;
case 3:
System.out.print("De que numero:");
nro= Integer.parseInt(teclado.readLine());
tablaMultiplicacion(nro);
break;
case 4:
System.out.print("De que numero:");
nro= Integer.parseInt(teclado.readLine());
tablaDividir(nro);
break;
case 5:
System.out.print("De que numero:");
nro= Integer.parseInt(teclado.readLine());
tablaPotencia(nro);
break;
}
}while(opcion<6);
}
}
//...Para este caso de recursividad los problemas se iran resolviendo en una sola aplicación
public class a_recursividad {
//... Modulo recursivo que imprime los n-primeros numero naturales
public static void nPrimeros(int nro){
if(nro>0){
nPrimeros(nro-1);
System.out.print(nro+", ");
}
}
//... Modulo recursivo que calcula la suma de los n-primeros numeros naturales
public static int sumaNprimeros(int nro){
if(nro==0)
return nro;
else
return nro+sumaNprimeros(nro-1);
}
//... Modulo recursivo que calcula el factorial de un numero
public static int factorial(int nro){
if(nro==0)
return 1;
else
return nro*factorial(nro-1);
}
//... Modulo recursivo que evalua el producto de dos numeros
public static int producto(int nro1, int nro2){
if(nro2==0)
return 0;
else
return nro1+producto(nro1, nro2-1);
}
//... Modulo recursivo que determina el MCD de dos numeros (Alg. euclides)
public static int mcd(int nro1, int nro2){
if(nro1%nro2==0)
return nro2;
else
return mcd(nro2, nro1%nro2);
}
//... Modulo que determina le n-esimo termino de la serie fibonacci
public static int fibonacci(int nro){
if(nro<=2)
return nro-1;
else
return fibonacci(nro-1)+fibonacci(nro-2);
}
//... Modulo que calcula la n-esima potencia de un numero
public static int potencia(int nro, int potencia){
if(potencia==0) return 1;
else return nro*potencia(nro, potencia-1);
}
//... Modulo que invierte una cadena
public static String invertirCadena(String cadena){
if(cadena.length()<=1) return cadena;
else
return invertirCadena(cadena.substring(1, cadena.length()))+cadena.substring(0,1);
}
//... Modulo que convierte un numero de base dos a base diez
public static int binario(int nro){
if(nro<=1)
return nro;
else
return binario(nro/2)*10+nro%2;
}
//... Modulo que calcule el cociente de la division entera de dos numeros
public static int cociente(int nro1, int nro2){
if(nro1<nro2) return 0;
else return 1+cociente(nro1-nro2, nro2);
}
//... Modulo que calcula la raiz cuadrada entera de un numero
//... raizCuadrada(9,0)
public static int raizCuadrada(int nro, int k){
if(k*k<=nro && nro<(k+1)*(k+1))
return k;
else
return raizCuadrada(nro,k+1);
}
//... Modulo que calcula el valor del coeficiente de un binomio cuadrado
//... n k
//... 0: 1
//... 1: 1 1
//... 2: 1 2 1
//... 3: 1 3 3 1
//... 4: 1 4 6 4 1
//... 5: 1 5 10 10 5 1
//... coeficienteBinomio(5,2) => 10
public static int coeficienteBinomio(int n, int k){
if(k<=0 || k==n) return 1;
else return coeficienteBinomio(n-1, k-1)+coeficienteBinomio(n-1, k);
}
/* En una base militar en el desierto hay un Jeep y n-bidones de gasolina.
El tanque de gasolina del Jeep tiene la capasidad para un bidon y además puede
cargar otro bidon.
El Jeep puede recorrer D Km con un bido de gasolina. Escribir un modulo que calcule la
distancia maxima que puede recorrer el Jeep */
public static float jeep(float distancia, int nroGalones){
if(nroGalones==1) return distancia;
else return distancia/((nroGalones-1)*2-1) + jeep(distancia, nroGalones-1);
}
//... Modulo que determina las jugadas de las torres de hanoi
//... hanoi('A','B','C',3);
public static void hanoi(char izquierda, char centro, char derecha, int n){
if(n==1)
System.out.println("mover disco "+n+" desde "+izquierda+" hasta "+derecha);
else{ hanoi(izquierda,derecha,centro,n-1);
System.out.println("mover disco "+n+" desde "+izquierda+" hasta "+derecha);
hanoi(centro,izquierda,derecha,n-1);
}
}
//… PROGRAMA PRINCIPAL
public static void main(String[] args) {
System.out.println("xxx: "+jeep(5,3));
}
}