En este caso resolvemos el problema suponiendo que la suma es divisible por 7 y después lo extendemos al resto de los enteros.
Tomemos por ejemplo el número 30 y queremos encontrar otro entero que sumado al anterior sea dicha suma múltiplo de 7, y además le añadimos que sea la menor suma que cumple esta condición.
la lista de los primeros múltiplos de 7 son:
- 7, 21, 28, 35, 42, 49, 56, etc
Entonces el 30 se encuentra entre el 28 y 35, por lo que el número múltiplo de 7 más cercano es el 35 y el valor que le tenemos que sumar a 30 es 35-30=5.
Se puede extrapolar a cualquier divisor no solo el 7.
Abajo dejo el código en Java para cualquier divisor :
import java.util.Scanner;
public class Divisible {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int numero;
int divisor;
int paso;
// entrada de datos
System.out.println("Introducir el mumero divisor ");
divisor=sc.nextInt();
System.out.println("Introducir el mumero base a sumar ");
numero=sc.nextInt();
paso=divisor*(numero/divisor+1);
// cálculo y resultados
System.out.printf("Hay que sumar %d a %d para obtener un multiplo de %d que es %d%n",paso-numero,numero,divisor,paso);
sc.close(); // cerramos el Scanner
}
}
no incluye condicionales, ni búsquedas por bucle que sería la primera tentación para resolver el problema.
No hay comentarios:
Publicar un comentario