EJERCICIOS RESUELTOS
1. Diseñe un
algoritmo para un cajero automático. El cajero tiene la particularidad de dar
solamente billetes de 500, 200, 100, 50, y 20. Si el usuario ingresa una
cantidad menor a 1500 que desea retirar, debe arrogarle la cantidad mínima de
billetes de cada tipo.
NOTA: No debe dar billetes de 10 soles, POR EJEMPLO,
si se le ingresa un monto de 510, debe arrojarme:
Billetes de 200: 2
Billetes de 50: 1
Billetes de 20: 3
SOLUCIÓN:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class CAJERO2 {
public
static void main(String[] args) throws IOException{
BufferedReader consola = new BufferedReader(new
InputStreamReader(System.in));
int
monto, i, b1 = 0, b2=0, b3=0, b4=0, b5=0, b500, b200, b100, b50, b20;
do{
System.out.println("Ingrese un monto MENO O IGUAL a 1500: ");
monto=Integer.parseInt(consola.readLine());
}while((monto<=30||monto>1500)||monto%10!=0);
while(monto>=20){
if(monto>=500&&(monto!=510&&monto!=530)){
if(monto>1000){
b1+=(int)monto/500;
monto=monto-b1*500;
}
else{
if(monto%500!=30&&monto%500!=10){
b1+=(int)monto/500;
monto=monto-b1*500;
}
}
}
if(monto>=200&&(monto%200>=10||monto%200==0)){
if(monto>410){
b2+=(int)monto/200;
monto=monto-b2*200;
}
else{
if(monto%200!=30&&monto%200!=10){
b2+=(int)monto/200;
monto=monto-b2*200;
}
}
}
if(monto>=100&&(monto%100>=10||monto%100==0)){
if(monto>110){
b3++;
monto=monto-100;
}
else{
if(monto%100!=30&&monto%100!=10){
b100=(int)monto/100;
b3=b3+b100;
monto=monto-b100*100;
}
}
}
if(monto>=50&&(monto%50>=10||monto%50==0)){
if(monto>100){
b4++;
monto=monto-50;
}
else{
if(monto%50!=30&&monto%50!=10){
b50=(int)monto/50;
b4=b4+b50;
monto=monto-b50*50;
}
}
}
if(monto>=20){
b20=(int)monto/20;
b5=b5+b20;
monto=monto-b20*20;
}
}
if(b1>0){
System.out.println("Billetes de 500: "+b1);
}
if(b2>0){
System.out.println("Billetes de 200: "+b2);
}
if(b3>0){
System.out.println("Billetes de 100: "+b3);
}
if(b4>0){
System.out.println("Billetes de 50: "+b4);
}
if(b5>0){
System.out.println("Billetes de 20: "+b5);
}
}
}
2. Ingrese un número
BINARIO (número compuesto por ceros y unos), y muestre su equivalente. Pr
ejemplo, si ingreso 101101, debe mostrarme 45 como su equivalente.
SOLUCIÓN:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class EnteroBinario {
public
static void main(String[] args) throws IOException{
BufferedReader consola=new BufferedReader(new
InputStreamReader(System.in));
int i,
j, k=0, equivalente=0, numero, b=0;
boolean
m = false;
String
N;
do{
System.out.println("Ingrese el numero entero binario: ");
numero=Integer.parseInt(consola.readLine());
N=Integer.toString(numero);
for(i=0;i<N.length();i++){
if(N.charAt(i)=='0'||N.charAt(i)=='1'){
m=true;
b++;
}
}
}while(b<N.length());
j=numero;
while(numero>0){
numero=(int)numero/10;
k++;
}
for(i=0;i<k;i++){
equivalente+=(j%10)*Math.pow(2,i);
j=(int)j/10;
}
System.out.println("El equivalente del numero ingresado es:
"+equivalente);
}
}
3. Un número se
considera perfecto cuando la suma de sus divisores es igual al número, por ejemplo
28, tiene como divisores a 1, 2, 4, 7 y
14. Luego 28 es número perfecto, pues 1+2+4+7+14=28. Hacer un algoritmo para
determinar si un número ingresado por teclado es perfecto.
SOLUCIÓN:
import java.util.Scanner;
public class perfecto {
public
static void main(String[] args) {
Scanner
b=new Scanner(System.in);
int n,
suma=1,i=2;
System.out.println("Ingrese el numero: ");
n=b.nextInt();
while(i<n){
if(n%i==0){
suma=suma+i;
}
i++;
}
if(suma==n){
System.out.println("El numero es perfecto");
}
else{
System.out.println("el numero no es perfecto");
}
}
}
4. La tribuna
de un estadio esta numerada del 1 al 500 en la parte superior horizontal que
corresponde al número de asiento por columna; y del 1 al 50 en la parte
izquierda vertical que corresponde al número de asiento por fila. Los boletos
tienen una numeración correlativa del 1 al 25000. Para cualquier número de
boleto determinar el número de fila y el número de columna que le
correspondería a la ubicación de su asiento.
SOLUCIÓN:
import java.util.Scanner;
public class Asientoestadio {
public
static void main(String[] args) {
Scanner
teclado=new Scanner(System.in);
int
asiento, fila=0, columna=0;
System.out.println("Ingrese el numero de asiento: ");
asiento=teclado.nextInt();
while(asiento>500){
fila++;
asiento=asiento-500;
}
fila++;
columna=asiento;
System.out.println("El asiento corresponde a la fila:
"+fila+" y a la columna: "+columna);
}
}
5. Diseñe un
algoritmo que convierte un número en base 10, a otro número en base menor que
10. El número en base 10 y la base a la
que se va a convertir se deben ingresar por teclado.
SOLUCIÓN:
import java.util.Scanner;
public class ConvierteNumeroAbaseMenora10 {
public
static void main(String[] args) {
Scanner
teclado=new Scanner(System.in);
int
base, numero,div=0,i=1;
System.out.println("Ingrese el numero en base 10: ");
numero=teclado.nextInt();
do{
System.out.println("Ingrese la base menor a 10 : ");
base=teclado.nextInt();
}while(base<=1||base>=10);
while(numero>=base){
div=div+(numero%base)*i;
numero=(int)(numero/base);
i=i*10;
}
div=div+(numero*i);
System.out.println("el numero en base "+base+" es:
"+div);
}
}
xchevere
ResponderEliminar