Составить программу, вычисляющую это значение для любого значения n, если n<=30 - Free Pascal
Формулировка задачи:
Две цифры
n-
значных чисел можно составить, используя цифры5
и9
, в которых три одинаковые цифры не стоят рядом? Дляn=3
ответ будет6
. Составить программу, вычисляющую это значение для любого значенияn
, еслиn<=30
Решение задачи: «Составить программу, вычисляющую это значение для любого значения n, если n<=30»
textual
Листинг программы
- var
- i, j, n, res: longint;
- a: array[1..30, 1..4] of longint;
- begin
- read(n);
- if n = 0 then writeln(0) else
- if n = 1 then writeln(2) else
- if n = 2 then writeln(4) else
- begin
- res := 0;
- for i:=1 to 30 do for j:=1 to 4 do a[i,j]:=0;
- a[2, 1] := 1; a[2, 2] := 1; a[2, 3] := 1; a[2, 4] := 1; {//55,99,59,95}
- for i := 2 to n - 1 do
- begin
- inc(a[i + 1, 3], a[i, 1]);
- inc(a[i + 1, 4], a[i, 2]);
- inc(a[i + 1, 2], a[i, 3]);
- inc(a[i + 1, 4], a[i, 3]);
- inc(a[i + 1, 1], a[i, 4]);
- inc(a[i + 1, 3], a[i, 4]);
- end;
- for i := 1 to 4 do inc(res, a[n, i]);
- writeln(res);
- end;
- end.
Объяснение кода листинга программы
- Объявлены переменные i, j, n, res, a, которые будут использоваться в программе.
- С помощью функции read() в переменную n считывается значение, которое будет использоваться в программе.
- Если n = 0, то выводится 0.
- Если n = 1, то выводится 2.
- Если n = 2, то выводится 4.
- Если n > 2, то выполняется следующий блок кода.
- Переменная res инициализируется значением 0.
- Массив a размером 30x4 заполняется нулями.
- Значения a[2,1], a[2,2], a[2,3], a[2,4] инициализируются единицами.
- Для i = 2 to n-1 выполняется следующий блок кода.
- Значения a[i+1,3], a[i,1] увеличиваются на единицу.
- Значения a[i+1,4], a[i,2] увеличиваются на единицу.
- Значения a[i+1,2], a[i,3] увеличиваются на единицу.
- Значения a[i+1,4], a[i,3] увеличиваются на единицу.
- Значения a[i+1,1], a[i,4] увеличиваются на единицу.
- Значения a[i+1,3], a[i,4] увеличиваются на единицу.
- После завершения цикла, значения a[i+1,3], a[i,1], a[i+1,4], a[i,2], a[i+1,2], a[i,3], a[i+1,4], a[i,3], a[i+1,1], a[i,4], a[i+1,3], a[i,4] увеличиваются на единицу.
- Значения a[1,i], a[2,i], a[3,i], a[4,i] для i = 1 to 4 добавляются к переменной res.
- Выводится значение переменной res.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д