В белом квадрате n раз выполнили одну и ту же операцию: один из
наименьших белых квадратов разбили на 4 одинаковых квадрата и 2 из них закрасили черным цветом. Для заданного n вычислите, сколько процентов
занимает площадь черной фигуры.
Вход. Одно
число n (1 ≤ n ≤ 100).
Выход. Выведите
площадь черной фигуры в процентах, округленную до 5 десятичных
знаков.
Пример входа |
Пример выхода |
1 |
50.0 |
математика
Пусть
изначально длина стороны квадрата равна side = 1. После
выполнения операции первый раз получим 4 квадрата с длиной стороны side = side / 2 = 1/2, два из которых следует закрасить черным цветом. То
есть площадь этих двух черных квадратов составит 2 * side * side = 0.5, где side = 1/2.
Во второй
операции делим квадрат со стороной side = 1/2 на 4 части. Длина стороны каждого из 4 квадратов
равна side = 1/4, черным будет закрашена площадь 2 * side * side = 0.125.
Суммируем закрашенную
черным на каждой итерации площадь.
Поскольку
в ответе следует вывести количество процентов, то найденную площадь следует
умножить на 100.
Реализация алгоритма
Читаем значение n.
scanf("%d", &n);
Изначально площадь черной части равна area = 0. Длину
стороны квадрата положим равной side = 1.
area = 0; side = 1;
На каждой итерации длина стороны side меньшего квадрата
уменьшается вдвое. Черным цветом будет краситься площадь равная 2 * side * side.
for (i = 0; i < n; i++)
{
side /=
2;
area += 2
* side * side;
}
Выводим ответ.
printf("%.5lf\n", area * 100);
Python реализация
Читаем значение n.
n = int(input())
Изначально площадь черной части равна area = 0. Длину
стороны квадрата положим равной side = 1.
area = 0
side = 1
На каждой итерации длина стороны side меньшего квадрата
уменьшается вдвое. Черным цветом будет краситься площадь равная 2 * side * side.
for i in range(n):
side /= 2
area += 2 * side * side
Выводим ответ.
print(area * 100)