freeCodeCamp/curriculum/challenges/spanish/08-coding-interview-prep/rosetta-code/ethiopian-multiplication.sp...

3.4 KiB
Raw Blame History

title id challengeType videoUrl localeTitle
Ethiopian multiplication 599d1566a02b571412643b84 5 Multiplicación etíope

Description

La multiplicación etíope es un método para multiplicar enteros utilizando solo la suma, el doblado y la reducción a la mitad.

Método:

Toma dos números para multiplicarlos y escríbelos en la parte superior de las dos columnas. En la columna de la izquierda, reduzca a la mitad el último número, descartando cualquier resto, y escriba el resultado debajo del último en la misma columna, hasta que escriba un valor de 1. En la columna de la derecha doble, doble el último número y escriba el Resultado a continuación. deténgase cuando agregue un resultado en la misma fila donde se muestra la columna de la izquierda 1. Examine la tabla producida y descarte cualquier fila donde el valor de la columna de la izquierda sea par. Suma los valores en la columna de la derecha que quedan para producir el resultado de multiplicar los dos números originales juntos

Por ejemplo: 17 × 34.

17 34

Reduciendo a la mitad la primera columna:

17 34

8

4

2

1

Duplicando la segunda columna:

17 34

8 68

4 136

2 272

1 544

Filas tachadas cuya primera celda es par:

17 34

8 68

4 136

2 272

1 544

Suma los números restantes en la columna de la derecha:

17 34

8 -

4 ---

2 ---

1 544

====

578

Entonces 17 multiplicado por 34, por el método etíope es 578.

Tarea:

La tarea es definir tres funciones nombradas / métodos / procedimientos / subrutinas:

uno para reducir a la mitad un número entero, uno para duplicar un número entero y otro para indicar si un número entero es par.

Usa estas funciones para crear una función que haga la multiplicación etíope.

Instructions

Tests

tests:
  - text: <code>eth_mult</code> es una función.
    testString: 'assert(typeof eth_mult === "function", "<code>eth_mult</code> is a function.");'
  - text: '<code>eth_mult(17,34)</code> debe devolver <code>578</code> .'
    testString: 'assert.equal(eth_mult(17, 34), 578, "<code>eth_mult(17,34)</code> should return <code>578</code>.");'
  - text: '<code>eth_mult(23,46)</code> debe devolver <code>1058</code> .'
    testString: 'assert.equal(eth_mult(23, 46), 1058, "<code>eth_mult(23,46)</code> should return <code>1058</code>.");'
  - text: '<code>eth_mult(12,27)</code> debe devolver <code>324</code> .'
    testString: 'assert.equal(eth_mult(12, 27), 324, "<code>eth_mult(12,27)</code> should return <code>324</code>.");'
  - text: '<code>eth_mult(56,98)</code> debe devolver <code>5488</code> .'
    testString: 'assert.equal(eth_mult(56, 98), 5488, "<code>eth_mult(56,98)</code> should return <code>5488</code>.");'
  - text: '<code>eth_mult(63,74)</code> debe devolver <code>4662</code> .'
    testString: 'assert.equal(eth_mult(63, 74), 4662, "<code>eth_mult(63,74)</code> should return <code>4662</code>.");'

Challenge Seed

function eth_mult (a, b) {
  // Good luck!
}

Solution

// solution required