Задача. Определить периметр правильного [latex]n[/latex]-угольника, описанного около окружности радиуса [latex]r[/latex].
Тесты
[latex]n[/latex] | [latex]r[/latex] | [latex]P[/latex] |
4 | 2 | 16 |
3 | 5 | 51.9615 |
7 | 3 | 20.2261 |
5 | 5 | 36.3271 |
6 | 6 | 41.5692 |
Решение
Величину угла можно найти если задано только количество вершин — [latex]\frac{\pi\cdot(n-2))}{n}[/latex].
Для примера можно рассмотреть квадрат.
Так как квадрат — правильный четырёхугольник, то центр вписанной окружности совпадает с центром описанной окружности. [latex]R[/latex] делит угол напополам — [latex]\frac{\alpha }{2}[/latex]. Отсюда получаем треугольник:
Выводим формулу только с [latex]n[/latex] и [latex]r[/latex].
[latex]P=\frac{2nr}{tg(\frac{\pi(n-2)}{2n})}[/latex].Код
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> #include <cmath> using namespace std; int main() { int n; double r; cin >> n >> r; cout << (2*n*r/tan(M_PI*(n-2)/(2*n))) << endl; return 0; } |
А где конечная формула и код? 🙂 Как говорится,
«Это заготовка статьи.
Вы можете помочь проекту, исправив и дополнив её.»
О, появились, спасибо. Сразу же вопрос: а почему Вы так не доверяете функции tan, что реализуете ее сами?
Я забыла про tan) Так лучше?
Так лучше.
Еще я бы не определял PI как десятичную дробь с 7-ю знаками — это и маловато и надо знаки помнить, а мне лень.
Зато есть метод, который и точнее, и лаконичнее
const double PI = acos(-1.0);
Сделано
В cmath определена специальная константа для M_PI
Сделано
— Поправьте отступы в программе.
— Не уверен, что нам нужно столько переменных. Точнее уверен, что кроме n и r нам больше ничего не нужно. Просто выведите в пояснениях окончательную формулу (от n и r), а в коде запрограммируйте её.
В условии задачи тоже нужно использовать laTeX иначе начертание символов отличается.
— «A = M_PI * (n-2) / n; //градусное измерение угла» — это неправда.
— «P = n*a» так пишут в программировании. В математических текстах произведение обозначают точкой по центру строки \dot.
Я исправила
Настя! Нужно внимательно читать свой текст. Перечень ошибок уже превышает объём написанного Вами текста. Некоторые приходится повторять.
Продолжим.
– Поправьте отступы в программе.
— В условии задачи тоже нужно использовать laTeX иначе начертание символов отличается.
— Видите большие жёлтые прямоугольники вместо формул? Может посмотрите, что с ними не так?
— «Измерение одного угла можно вычислить если…» Вы имели величину угла?
Извините. Я отредактировала эту публикацию раньше, но загрузилась старая публикация со старыми ошибками.
Такое бывает. Для этого и нужно смотреть, что получилось.
Хорошо. Принято.