Ejercicio B comentado

This commit is contained in:
2024-10-25 13:07:56 +02:00
parent 1ca65a3c3f
commit 7dc1918355

View File

@@ -5,14 +5,19 @@ import static examenes.examen20241025.utils.Utils.*;
public class Ejercicio_b { public class Ejercicio_b {
public static void main(String[] args) { public static void main(String[] args) {
//Solicito un número
int numPositivo = solicitarIntScanner("Introduzca un número para comprobar si se puede expresar con 3^n"); int numPositivo = solicitarIntScanner("Introduzca un número para comprobar si se puede expresar con 3^n");
//Creo variables que voy a necesitar
int resultadoAnterior = 0; int resultadoAnterior = 0;
boolean encontrado = false; boolean encontrado = false;
String resultadoPosible = ""; String resultadoPosible = "";
//En un bucle voy comprobando
for (int i = 1; true; i++) { for (int i = 1; true; i++) {
//Si cuadra la suma marcamos que lo hemos encontrado y salimos del bucle
if (resultadoAnterior == numPositivo) { if (resultadoAnterior == numPositivo) {
//Generamos el texto para representar la suma
for (int j = 0; j < i; j++) { for (int j = 0; j < i; j++) {
resultadoPosible += "3^" + (j + 1); resultadoPosible += "3^" + (j + 1);
if (j != i - 1) { if (j != i - 1) {
@@ -21,13 +26,18 @@ public class Ejercicio_b {
} }
encontrado = true; encontrado = true;
break; break;
//Si no hemos llegado sumamos el siguiente 3^n
} else if (resultadoAnterior < numPositivo) { } else if (resultadoAnterior < numPositivo) {
resultadoAnterior += (int) Math.pow(3, i); resultadoAnterior += (int) Math.pow(3, i);
//Si nos hemos pasado nos salimos del bucle
} else { } else {
break; break;
} }
} }
//Si hemos encontrado el resultado lo decimos y lo mostramos y si no lo hemos encontrado lo decimos
if (encontrado) { if (encontrado) {
System.out.println("Se ha encontrado este resultado: "); System.out.println("Se ha encontrado este resultado: ");
System.out.println(resultadoPosible); System.out.println(resultadoPosible);