freeCodeCamp/curriculum/challenges/portuguese/08-coding-interview-prep/project-euler/problem-382-generating-poly...

1.8 KiB

id challengeType title videoUrl localeTitle
5900f4eb1000cf542c50fffd 5 Problem 382: Generating polygons Problema 382: Gerando polígonos

Description

Um polígono é uma forma plana que consiste em segmentos de linha reta que são unidos para formar uma cadeia ou circuito fechado. Um polígono consiste em pelo menos três lados e não se auto-intercepta.

Diz-se que um conjunto S de números positivos gera um polígono P se: não há dois lados de P com o mesmo comprimento, o comprimento de todos os lados de P está em S e S não contém outro valor.

Por exemplo: O conjunto {3, 4, 5} gera um polígono com os lados 3, 4 e 5 (um triângulo). O conjunto {6, 9, 11, 24} gera um polígono com os lados 6, 9, 11 e 24 (um quadrilátero). Os conjuntos {1, 2, 3} e {2, 3, 4, 9} não geram nenhum polígono.

Considere a sequência s, definida da seguinte forma: s1 = 1, s2 = 2, s3 = 3 sn = sn-1 + sn-3 para n> 3.

Seja Un o conjunto {s1, s2, ..., sn}. Por exemplo, U10 = {1, 2, 3, 4, 6, 9, 13, 19, 28, 41}. Seja f (n) o número de subconjuntos de Un que geram pelo menos um polígono. Por exemplo, f (5) = 7, f (10) = 501 e f (25) = 18635853.

Encontre os últimos 9 dígitos de f (1018).

Instructions

Tests

tests:
  - text: <code>euler382()</code> deve retornar 697003956.
    testString: 'assert.strictEqual(euler382(), 697003956, "<code>euler382()</code> should return 697003956.");'

Challenge Seed

function euler382() {
  // Good luck!
  return true;
}

euler382();

Solution

// solution required