Предлагаю для начала рассматривать только значения вида (x.. xor x..) Очевидно, скажем, если (x1 xor x2) = 0, то (x3 xor x4) = 1 Так что достаточно посчитать количество цепочек значений xor'ов, где нет двух стоящих подряд 0. Всего пять значений, так что можно посчитать все вручную. Например, составить дерево. Получилось 13 цепочек. Т.к. каждому значению .. xor .. соответствует пара возможных значений x (01 и 10), каждая цепочка будет соответствовать 2^5 = 32 возможным значениям x1..10. Соответственно, ответ: 13 * 32 = 416
Var a, i, n, sum: integer;
Degin
ReadLn(a, n);
Sum := 1;
For i := 1 to n do sum := sum * a;
WriteLn(sum);
End.
WHILE
Var a, i, n, sum: integer;
Begin
Read(a, n);
Sum := 1;
While i <> n do
Begin
Sum := sum * a;
Inc(i);
End;
Writeln(sum);
End.
REPEAT
Var a, i, n, sum: integer;
Begin
Read(a, n);
Sum := 1;
If n <> 0 then
Repeat
Begin
Sum := sum * a;
Inc(i);
End;
Until i = n;
WriteLn(sum);
End.
Очевидно, скажем, если (x1 xor x2) = 0, то (x3 xor x4) = 1
Так что достаточно посчитать количество цепочек значений xor'ов, где нет двух стоящих подряд 0. Всего пять значений, так что можно посчитать все вручную. Например, составить дерево.
Получилось 13 цепочек. Т.к. каждому значению .. xor .. соответствует пара возможных значений x (01 и 10), каждая цепочка будет соответствовать 2^5 = 32 возможным значениям x1..10.
Соответственно, ответ: 13 * 32 = 416