--- title: Ethiopian multiplication id: 599d1566a02b571412643b84 challengeType: 5 videoUrl: '' localeTitle: Multiplicação etíope --- ## Description

A multiplicação etíope é um método de multiplicar inteiros usando apenas adição, duplicação e redução pela metade.

Método:

Pegue dois números para serem multiplicados e anote-os no topo de duas colunas. Na coluna da esquerda, separe repetidamente o último número, descartando qualquer resto, e escreva o resultado abaixo do último na mesma coluna, até você escrever um valor de 1. Na coluna da direita repetidamente, duplique o último número e escreva o número. resultado abaixo. pare quando você adicionar um resultado na mesma linha de onde a coluna da esquerda mostra 1. Examine a tabela produzida e descarte qualquer linha na qual o valor na coluna da esquerda seja par. Soma os valores na coluna da direita que permanecem para produzir o resultado da multiplicação dos dois números originais juntos

Por exemplo: 17 × 34

17 34

Reduzindo a primeira coluna:

17 34

8

4

2

1

Duplicando a segunda coluna:

17 34

8 68

4 136

2 272

1 544

Linhas de ataque cuja primeira célula é par:

17 34

8 68

4 136

2 272

1 544

Soma os números restantes na coluna da direita:

17 34

8 -

4 ---

2 ---

1 544

====

578

Então 17 multiplicado por 34, pelo método etíope é 578.

Tarefa:

A tarefa é definir três funções / métodos / procedimentos / sub-rotinas nomeadas:

um para reduzir pela metade um inteiro, um para dobrar um inteiro e um para indicar se um inteiro é par.

Use essas funções para criar uma função que faça multiplicação etíope.

## Instructions
## Tests
```yml tests: - text: eth_mult é uma função. testString: 'assert(typeof eth_mult === "function", "eth_mult is a function.");' - text: 'eth_mult(17,34) deve retornar 578 .' testString: 'assert.equal(eth_mult(17, 34), 578, "eth_mult(17,34) should return 578.");' - text: 'eth_mult(23,46) deve retornar 1058 .' testString: 'assert.equal(eth_mult(23, 46), 1058, "eth_mult(23,46) should return 1058.");' - text: 'eth_mult(12,27) deve retornar 324 .' testString: 'assert.equal(eth_mult(12, 27), 324, "eth_mult(12,27) should return 324.");' - text: 'eth_mult(56,98) deve retornar 5488 .' testString: 'assert.equal(eth_mult(56, 98), 5488, "eth_mult(56,98) should return 5488.");' - text: 'eth_mult(63,74) deve retornar 4662 .' testString: 'assert.equal(eth_mult(63, 74), 4662, "eth_mult(63,74) should return 4662.");' ```
## Challenge Seed
```js function eth_mult (a, b) { // Good luck! } ```
## Solution
```js // solution required ```