freeCodeCamp/curriculum/challenges/russian/08-coding-interview-prep/rosetta-code/heronian-triangles.russian.md

5.5 KiB
Raw Blame History

title id challengeType videoUrl localeTitle
Heronian triangles 595b98f8b5a2245e243aa831 5 Херонические треугольники

Description

Формула Героя для области треугольника с учетом длины трех ее сторон a, b и c определяется следующим образом:

$$ A = \ sqrt {s (sa) (sb) (sc)}, $$

где s - половина периметра треугольника; то есть,

$$ з = \ гидроразрыва {а + B + C} {2} $$.

Херонические треугольники - это треугольники, стороны и области которых являются целыми числами.

Примером может служить треугольник со сторонами 3, 4, 5, площадь которых равна 6 (а по периметру - 12).

Заметим, что любой треугольник, чьи стороны все целые кратные 3, 4, 5; такие как 6, 8, 10, также будут иероническим треугольником.

Определите примитивный херонийский треугольник как хернийский треугольник, где наибольший общий делитель

всех трех сторон 1 (единство).

Это исключает, например, треугольник 6, 8, 10.

Задача:

Реализуйте функцию, основанную на формуле Героя, которая возвращает первые n th упорядоченные треугольники в массиве массивов.

Instructions

Tests

tests:
  - text: <code>heronianTriangle</code> - это функция.
    testString: 'assert(typeof heronianTriangle === "function", "<code>heronianTriangle</code> is a function.");'
  - text: '<code>heronianTriangle()</code> должен возвращать <code>[[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17]]</code>'
    testString: 'assert.deepEqual(heronianTriangle(testCases[0]), res[0], "<code>heronianTriangle()</code> should return <code>[[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17]]</code>");'
  - text: '<code>heronianTriangle()</code> должен возвращать <code>[[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15]],</code>'
    testString: 'assert.deepEqual(heronianTriangle(testCases[1]), res[1], "<code>heronianTriangle()</code> should return <code>[[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15]],</code>");'
  - text: '<code>heronianTriangle()</code> должен возвращать <code>[[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15], [10, 17, 21], [7, 24, 25], [8, 29, 35], [12, 17, 25], [4, 51, 53]],</code>'
    testString: 'assert.deepEqual(heronianTriangle(testCases[2]), res[2], "<code>heronianTriangle()</code> should return <code>[[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15], [10, 17, 21], [7, 24, 25], [8, 29, 35], [12, 17, 25], [4, 51, 53]],</code>");'
  - text: '<code>heronianTriangle()</code> должен возвращать <code>[[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15], [10, 17, 21], [7, 24, 25], [8, 29, 35], [12, 17, 25], [4, 51, 53], [19, 20, 37],[16, 17, 17], [17, 17, 30], [16, 25, 39], [13, 20, 21]]</code>'
    testString: 'assert.deepEqual(heronianTriangle(testCases[3]), res[3], "<code>heronianTriangle()</code> should return <code>[[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15], [10, 17, 21], [7, 24, 25], [8, 29, 35], [12, 17, 25], [4, 51, 53], [19, 20, 37],[16, 17, 17], [17, 17, 30], [16, 25, 39], [13, 20, 21]]</code>");'

Challenge Seed

// noprotect
function heronianTriangle (n) {
  // Good luck!

  return [];
}

After Test

console.info('after the test');

Solution

// solution required