Guest User

Untitled

a guest
Dec 8th, 2019
82
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.util.Scanner;
  2. public class T2Ejercicio15 {
  3. // Pido la fecha de nacimiento al usuario y devuelvo la suma
  4. public static int pedirNumeros() {
  5. int dia=0, mes=0, anio=0, resultado;
  6.  
  7. try {
  8. Scanner teclado = new Scanner (System.in);
  9. System.out.println("Numero dia nacimiento");
  10. dia=teclado.nextInt();
  11.  
  12. System.out.println("Numero mes nacimiento");
  13. mes=teclado.nextInt();
  14.  
  15. System.out.println("Numero año nacimiento");
  16. anio=teclado.nextInt();
  17. } catch (Exception e) {
  18. System.out.println("Error: ha escrito la fecha incorrectamente. Escriba numeros enteros.");
  19. System.exit(1);
  20. }
  21. resultado=dia+mes+anio;
  22. return resultado; // 11+02+1973=1986 o 01+01+702=11
  23. }
  24.  
  25. // Separo los digitos
  26. public static int separaDigitos(int numero) {
  27. int unidades, decenas, centenas, millares;
  28. // En esta función vamos a poder sacar desde unidades hasta millares, dependiendo del caso del número
  29. if (numero > 9 && numero < 100) { // De tener dos cifras, sacamos unidades y decenas
  30. unidades=numero%10;
  31. decenas=(numero/10)%10;
  32. return unidades+decenas;
  33.  
  34. } else if (numero > 99 && numero < 1000 ) { // De tener tres cifras, hasta centenas
  35. unidades=numero%10;
  36. decenas=(numero/10)%10;
  37. centenas=(numero/100)%10;
  38. return unidades+decenas+centenas;
  39.  
  40. } else if (numero > 999 && numero < 10000) { // De tener cuatro cifras, hasta millares
  41. unidades=numero%10;
  42. decenas=(numero/10)%10;
  43. centenas=(numero/100)%10;
  44. millares=numero/1000;
  45. return unidades+decenas+centenas+millares;
  46. } else {
  47. return numero; // Por descarte, el número solo tendrá una cifra de no entrar en estos márgenes
  48. }
  49.  
  50. }
  51.  
  52. public static void main (String args[]) {
  53. int sumaFecha, sumaDigitos, sumaFinal;
  54.  
  55. // Pido la fecha y la recibo sumada (por ejemplo: 11+02+1973=1986)
  56. sumaFecha=pedirNumeros();
  57.  
  58. // Saco unidades, decenas, centenas, millares de esa fecha y los sumo (1+9+8+6=24)
  59. sumaDigitos=separaDigitos(sumaFecha);
  60.  
  61. // Vuelvo a sacar unidades, decenas, centenas, millares... de lo sumado (por ejemplo: 2+4). De no tener que sumar nada, lo devolvería tal cual.
  62. sumaFinal=separaDigitos(sumaDigitos);
  63.  
  64. // Resultado
  65. System.out.println(sumaFinal);
  66.  
  67. }
  68. }
RAW Paste Data