Задача
Найти площадь кольца, внутренний радиус которого равен [latex]r[/latex], а внешний – [latex]R[/latex] ([latex]r<R[/latex]).
Входные данные:
В единственной строке указаны внешний и внутренний радиусы, разделенные пробелом.
Выходные данные:
Единственное число — площадь кольца.
Тесты:
R | r | Площадь кольца |
3 | 2 | 15.708 |
12.921 | 7.903 | 328.28 |
25 | 3.5 | 1925.01 |
10.2531 | 1 | 327.122 |
Решение:
1 2 3 4 5 6 7 8 9 |
#include <iostream> #include <cmath> using namespace std; int main() { double R, r; cin>>R>>r; cout<<R*R*M_PI-r*r*M_PI<<endl; return 0; } |
Описание решения:
При решении данной задачи использовались две переменные типа [latex]double[/latex]. Так как в постановке задачи не было указано, какими могут быть числа, то для обхвата наибольшего диапазона чисел разумно использовать именно этот тип данных. Помимо этого, была использована константа из математической библиотеки [latex]cmath[/latex], а именно, константа числа [latex]\pi[/latex]: [latex]M[/latex]_[latex]PI[/latex].
Чтобы найти площадь кольца, образованного двумя окружностями, необходимо найти площадь круга, образованного внешним радиусом кольца, по формуле [latex]\pi\cdot R^2[/latex], и площадь круга, образованного внутренним радиусом кольца, по формуле [latex]\pi\cdot r^2[/latex]. Затем, из площади большего круга вычесть площадь меньшего.
Получаем формулу: [latex]\pi\cdot R^2 — \pi\cdot r^2[/latex]. Подставляя в формулу переменные и константы, получаем:
7 |
R*R*M_PI-r*r*M_PI |
После выполнения всех операций перейдем на новую строку с помощью команды [latex]endl[/latex].
Здесь код программы на сайте ideone.com.
— У Вас не работает без _USE_MATH_DEFINES? Чем Вы компилируете?
— В математических формулах для обозначения умножения обычно используют точку (\dot), а не звёздочку.
Работает, я не правильно понял материал статьи. Спасибо за замечания, исправил.
Хорошо, зачтено.
Я бы рекомендовал ставить пробелы вокруг знаков операций. Так легче воспринимается.