JavaScript - Algoritmo averiguar un número

 
Vista:
Imágen de perfil de Rebeca
Val: 20
Ha disminuido su posición en 4 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Algoritmo averiguar un número

Publicado por Rebeca (7 intervenciones) el 12/05/2020 11:24:36
AYUDAAA POR FAVOR!! Estoy estudiando un superior de diseño web y tengo problemas con JavaScript. Necesito averiguar un numero con un algoritmo, he probado con una cadena (parseInt), pero quiere que lo haga de otra forma y no sé como más hacerlo... Adjunto una foto del ejercicio y lo pongo también en texto por si alguien no ve la foto..

EJERCICIO

Algoritmo averiguar un número
a) Crear un algoritmo para averiguar los números que encajan con unos criterios:
- Los números tienen 5 cifras.
- La suma de sus dígitos es igual que el producto de los mismos, por ejemplo: 1+2+3=1*2*3
Nota: Crear todas las funciones auxiliares necesarias.
Ej: 11125, suma: 10, producto: 10
11133, suma: 9, producto: 9

51211, suma: 10, producto: 10
52111, suma: 10, producto: 10

b) Además, los números son crecientes, por ejemplo: 12345 ó 16778
11125, suma: 10, producto: 10
11133, suma: 9, producto: 9
11222, suma: 8, producto: 8

Captura
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Algoritmo averiguar un número

Publicado por joel (895 intervenciones) el 12/05/2020 16:04:44
Hola Rebeca, no me queda claro el código a realizar... hay que buscar desde el valor 0 hasta el 999999?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de aberon10
Val: 477
Bronce
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Algoritmo averiguar un número

Publicado por aberon10 (130 intervenciones) el 13/05/2020 03:49:55
Hola Rebeca, al igual que Joel no me queda claro el algoritmo que deseas realizar, pero por lo que pude comprender debes hacer algo como lo siguiente:
1
2
3
4
5
6
7
def f(num):
    x, y = 0, 1
    while num > 0:
        x += (num % 10)
        y *= (num % 10)
        num //= 10
    return x == y
1
2
3
>>> f(123) # True
>>> f(5122) # True
>>> f(1244) # False

Una función la cual recibe un número num, define dos variables x e y utilizadas para guardar el resultado de la suma y multiplicación respectivamente, luego dentro del while realizó las operaciones acumulativas tomando una a una las cifras de dicho número, utilizando el operador modulo.

Obviamente puede realizarse de forma más eficiente y con otro tipos de funciones con las que cuenta el lenguaje, esto es algo básico.
Nos comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Algoritmo averiguar un número

Publicado por joel (895 intervenciones) el 13/05/2020 08:55:37
haber si te sirve este código para el ejercicio A:

1
2
3
4
5
6
7
8
const sumNumbers = n => n.toString().split('').reduce((acum, el) => acum + +el, 0);
const multNumbers = n => n.toString().split('').reduce((acum, el) => acum * +el, 1);
 
for (let i=11111; i<99999; i++) {
    if (sumNumbers(i)==multNumbers(i)) {
        console.log(i);
    }
}

Te devuelve:
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
11125
11133
11152
11215
11222
11251
11313
11331
11512
11521
12115
12122
12151
12212
12221
12511
13113
13131
13311
15112
15121
15211
21115
21122
21151
21212
21221
21511
22112
22121
22211
25111
31113
31131
31311
33111
51112
51121
51211
52111
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Algoritmo averiguar un número

Publicado por joel (895 intervenciones) el 13/05/2020 09:06:00
haber si te sirve este código para el ejercicio B:

1
2
3
4
5
6
7
8
9
10
11
<script>
const sumNumbers = n => n.toString().split('').reduce((acum, el) => acum + +el, 0);
const multNumbers = n => n.toString().split('').reduce((acum, el) => acum * +el, 1);
const increment = n => n.toString().split('').every((el, index, array) => index>0 ? +el >= array[index-1] : true);
 
for (let i=11111; i<99999; i++) {
    if (sumNumbers(i)==multNumbers(i) && increment(i)) {
        document.write("<br>"+i);
    }
}
</script>

Te devuelve:
1
2
3
11125
11133
11222
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar