На вход подается 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.