Skip to content

Instantly share code, notes, and snippets.

@Woodsphreaker
Forked from beatorizu/obmep.js
Last active March 21, 2017 04:43
Show Gist options
  • Save Woodsphreaker/36e194f1742acd89ab426bbd1285f04c to your computer and use it in GitHub Desktop.
Save Woodsphreaker/36e194f1742acd89ab426bbd1285f04c to your computer and use it in GitHub Desktop.
"use strict";
const digits = num => num.toString().split("").map(Number);
const invertNumber = number => digits(number).reverse();
const toNumber = list => Number(list.join(""));
const invertDigit = number => toNumber(invertNumber(number));
const sumList = list => list.reduce((pre, curr) => pre + curr);
const sumDigits = number => sumList(digits(number));
const solve = number => {
const subNumber = number - sumDigits(number);
const sumNumberPlusFour = sumDigits(subNumber) + 4;
const multNumberWhitReverse = sumNumberPlusFour * (invertDigit(sumNumberPlusFour));
const multNumberForThree = multNumberWhitReverse * 3;
const result = multNumberForThree;
return result;
};
console.log(solve(90));
  • Pense em qualquer número de DOIS dígitos, por exemplo 47

  • Subtraia a soma dos algarismos. Ex.: 47 - (4 + 7) = 36

  • Depois some os algarismos resultantes da subtração anterior, adicionando 4. Ex.: 3 + 6 + 4 = 13

  • Multiplique o resultado pelo inverso do número. Ex.: 13 x 31 = 403

  • E por último, multiplique por 3 o resultado anterior. Ex. 403 x 3 = 1209

  • Obs.: Qualquer número de 2 algarismos (entre 10 e 99) terão o mesmo resultado.

  • Não acredita ? Faça o teste !!!!

@lubien
Copy link

lubien commented Mar 20, 2017

N entendi muito bem a sua escolha de nomes.

Reducer recebe uma array e reduz ela pela soma. Reducer não deveria se referir a qualquer função que é capaz de reduzir? Digo isso pelo fato de que seu reducer tem um nome genérico para um caso específico (soma).

Não entendi porque nos operadores você deliberadamente recebe uma lista como argumento só para mapear um número,

@lubien
Copy link

lubien commented Mar 20, 2017

@Woodsphreaker
Copy link
Author

Fiz algumas alterações baseados nas suas sugestões.
Valeu !!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment