Skip to content

Commit

Permalink
solução do desafio 1 em Node.JS
Browse files Browse the repository at this point in the history
  • Loading branch information
vinibeloni committed Oct 31, 2019
1 parent de45e47 commit d4ea89f
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 0 deletions.
1 change: 1 addition & 0 deletions 1-reverse-number/vinibeloni/.gitignore
@@ -0,0 +1 @@
node_modules/
12 changes: 12 additions & 0 deletions 1-reverse-number/vinibeloni/ComoRodar.md
@@ -0,0 +1,12 @@
## Requirements
[Node.js](https://github.com/nodejs/node) installed

## Running

```bash
# Install dependencies
npm i

# Run
npm start
```
13 changes: 13 additions & 0 deletions 1-reverse-number/vinibeloni/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions 1-reverse-number/vinibeloni/package.json
@@ -0,0 +1,15 @@
{
"name": "vinibeloni",
"version": "1.0.0",
"description": "",
"main": "reverse.js",
"dependencies": {
"bignumber.js": "^9.0.0"
},
"devDependencies": {},
"scripts": {
"start": "node reverse.js"
},
"author": "vinibeloni",
"license": "ISC"
}
24 changes: 24 additions & 0 deletions 1-reverse-number/vinibeloni/reverse.js
@@ -0,0 +1,24 @@
/********* BIG NUMBERS *********/
const bigNumber = require('bignumber.js');

Number.__proto__.toLong = n => bigNumber(n.toString(32), 32).toString(10)

Number.__proto__.isLong = n => n.toString(32).length > 16
/*******************************/

//while (list.length > 0) { result.push(list.pop()) }
const reverseValue = n => n.toString().split('').reverse().join('')

const reverseAction = (validate, transform, n) => validate(n) ? reverseValue(transform(n)) : null

const reverse = n =>
reverseAction(Number.isLong, Number.toLong, n) ||
reverseAction(Number.isInteger, n => n, n) ||
'erro'

const formatInput = value => Number.isLong(value) ? Number.toLong(value) : value

const inputs = [1234, 12, 0, 6641112222223333333345678901118, 'lalala']
inputs.forEach((n, i) => {
console.log(`Input: '${formatInput(n)}'\nOutput: '${reverse(n)}'\n`)
})

0 comments on commit d4ea89f

Please sign in to comment.