hilo de problemas de matemáticas

Iniciado por omega_1, Julio 05, 2007, 10:15:15 AM

Tema anterior - Siguiente tema

Hincapié

Cita de: ENNAS en Abril 25, 2010, 01:12:57 PM
y de que salga 1 hay solo cuatro posibilidades: las matriculas 0001, 0010, 0100 y 1000.

No, de que salga 1 hay más posibilidades, por ejemplo el 1234 -> 1+2+3+4=10 -> 1+0=1

He hecho en dos patadas un programita para desglosar los números de cuatro cifras por su suma interna. El programa de marras, por si alguien lo quiere para algo â€"está hecho en beanshellâ€":


public String suma(String s) {
int res = Integer.valueOf("" + s.charAt(0)).intValue() + Integer.valueOf("" + s.charAt(1)).intValue() + Integer.valueOf("" + s.charAt(2)).intValue() + Integer.valueOf("" + s.charAt(3)).intValue();
if(res > 9) {
res = Integer.valueOf("" + (("" + res).charAt(0))).intValue() + Integer.valueOf("" + (("" + res).charAt(1))).intValue();
}
if(res > 9) {
res = Integer.valueOf("" + (("" + res).charAt(0))).intValue() + Integer.valueOf("" + (("" + res).charAt(1))).intValue();
}
return "" + res;
}

public String lpad(String str, int size, String padChar) {
while (str.length() < size) {
str = padChar + str;
}
return str;
}

public void init() {
int ceros = 0;
int unos = 0;
int doses = 0;
int treses = 0;
int cuatros = 0;
int cincos = 0;
int seises = 0;
int sietes = 0;
int ochos = 0;
int nueves = 0;
for (int j=0; j<10000; j++) {
int k = Integer.valueOf(suma(lpad("" + j, 4, "0"))).intValue();
switch (k) {
case 0: ceros++;
break;
case 1: unos++;
break;
case 2: doses++;
break;
case 3: treses++;
break;
case 4: cuatros++;
break;
case 5: cincos++;
break;
case 6: seises++;
break;
case 7: sietes++;
break;
case 8: ochos++;
break;
case 9: nueves++;
break;
}
}
print("ceros = " + ceros);
print("unos = " + unos);
print("doses = " + doses);
print("treses = " + treses);
print("cuatros = " + cuatros);
print("cincos = " + cincos);
print("seises = " + seises);
print("sietes = " + sietes);
print("ochos = " + ochos);
print("nueves = " + nueves);
}


El resultado es el siguente:


bsh % init();

ceros = 1
unos = 1111
doses = 1111
treses = 1111
cuatros = 1111
cincos = 1111
seises = 1111
sietes = 1111
ochos = 1111
nueves = 1111


Para números de tres y dos dí­gitos el resultado es análogo.