-
Notifications
You must be signed in to change notification settings - Fork 0
/
P106.java
110 lines (84 loc) · 2.7 KB
/
P106.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package aceptaelreto;
import java.util.*;
public class P106 {
static Scanner reader;
public static void main(String[] args) {
reader = new Scanner(System.in);
while (cas());
}
static boolean cas() {
String num, pais13;
boolean correct;
int n;
num = reader.nextLine();
n = num.length();
if (num.equals("0")) {
return false;
} else {
if (n < 14) {
correct = correcte(num, n);
if (correct) {
if (n > 8) {
if (n < 13) pais13 = "EEUU";
else pais13 = pais(num);
System.out.println("SI " + pais13);
return true;
} else {
System.out.println("SI");
return true;
}
} else {
System.out.println("NO");
return true;
}
} else {
System.out.println("NO");
return true;
}
}
}
static String pais(String n) {
String codigo;
codigo = n.substring(0, 3);
if (codigo.equals("380")) {
return "Bulgaria";
} else if (codigo.equals("539")) {
return "Irlanda";
} else if (codigo.equals("560")) {
return "Portugal";
} else if (codigo.equals("759")) {
return "Venezuela";
} else if (codigo.equals("850")) {
return "Cuba";
} else if (codigo.equals("890")) {
return "India";
} else {
codigo = n.substring(0, 2);
if (codigo.equals("50")) {
return "Inglaterra";
} else if (codigo.equals("70")) {
return "Noruega";
} else if (codigo.charAt(0) == '0') {
return "EEUU";
}
}
return "Desconocido";
}
static boolean correcte(String s, int n) {
int t;
int suma = 0;
int cont = 0;
for (int i = n - 2; i >= 0; i--) {
t = Integer.parseInt("" + s.charAt(i));
if (cont == 0) {
suma += t * 3;
cont = 1;
} else {
suma += t;
cont = 0;
}
}
int control = Integer.parseInt("" + s.charAt(n - 1));
return ((suma + control) % 10 == 0);
}
}