Автобус с n пассажирами открывает двери на
автобусной остановке. В точности половина пассажиров плюс полпассажира выходит.
На следующей остановке снова половина пассажиров плюс полпассажира выходит из
автобуса. Так продолжается k
остановок. Зная, что на последней остановке автобус стал пустым, и никто не
пострадал во время поездки, определите начальное количество людей n в автобусе.
Вход. Первая строка
содержит количество тестов t. Каждый
тест содержит в отдельной строке количество остановок k (1 ≤ k ≤
30).
Выход. Для каждого
теста вывести в отдельной строке начальное количество пассажиров.
Пример
входа |
Пример
выхода |
2 1 3 |
1 7 |
элементарная
задача – битовые операции
Если автобус
совершит k остановок, то для того
чтобы смогли произойти все описанные в условии события, необходимо чтобы в
автобусе изначально находилось 2k
– 1 пассажиров.
Читаем входные
данные. Для каждого значения k
выводим 2k – 1.
scanf("%d",&tests);
while(tests--)
{
scanf("%d",&k);
printf("%d\n",(1
<< k) - 1);
}
import
java.util.*;
public class
HelloWorld
{
public static void
main(String[] args)
{
Scanner con = new
Scanner(System.in);
int tests =
con.nextInt();
while(tests--
> 0)
{
int k =
con.nextInt();
System.out.println((1 << k) - 1);
}
}
}