3.4 KiB
3.4 KiB
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 juntosPor 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