Помогите написать программу в Паскале!
Найти сумму 2^2 +2^3 + ...2^10 . Операцию возведения в степень не исполь- зовать. Последовательность Фибоначчи образуется так: первый и второй члены по- следовательности равны 1, каждый следующий равен сумме двух предыду- щих (1, 1, 2, 3, 5, 8, 13, ...).
Заранее спасибо.
Answers & Comments
На вход подается 2 числа: a,b где
2^a + 2^(a+1) + 2^(a+2) + ... 2^(b-2) + 2^(b-1) + 2^b
На выводе число - результат формулы выше при подстановке a и b
1 вариант через цикл, сложность O(n):
VAR
a, b, adder, sum, i: INTEGER;
BEGIN
READ(a, b);
adder := 1;
FOR i := 1 TO b DO
BEGIN
adder := 2 * adder;
IF (i >= a)
THEN
sum := sum + adder
END;
WRITELN(sum);
END.
2 вариант через побитовые сдвиги, сложность O(1):
VAR a, b: INTEGER;
BEGIN
READ(a, b);
WRITELN((1 SHL (b+1)) - (1 SHL (a)));
END.