Представим куб в виде графа его каркаса. Пронумеруем все вершины куба цифрами от 1 до 8. Задача сводится к обычному обходу в ширину. Для четных N ответ будет 0, т.к. нельзя дойти на противоположную вершину за четное кол-во шагов. ответ будет расти в геометрической прогрессии в зависимости от N. Программа:
var n, i, j, k: integer; a: array[0..100, 1..8] of int64; begin read(n); a[0, 1] := 1; for k := 1 to n do for i := 1 to 8 do for j := 1 to 8 do if m[i, j] = 1 then a[k, i] := a[k, i] + a[k - 1, j]; write(a[n, 8]); end.
Программы проверены в интерпретаторе ByWater Basic Interpeter/Shell version 2.20 patch level2 for linux
Задание 1: 10 rem Площадь круга и квадрата
20 input "Введите площадь круга"; SR 30 input "Введите площадь квадрата"; SK
40 a=sqr(SK)
50 c=sqr(a^2 * 2) 60 pi=3.1415926 70 r=sqr(SR/pi) 80 if a>=r then print "Круг поместится в квадрат":goto 110 90 if r>=c then print "Квадрат поместится в круг":goto 110 100 print "Фигуры не поместятся друг в друга" 110 print "---------------------------------":print 120 end
Задание 2: 10 rem Три числа 20 print "Введите три числа" 30 input a, b, c 35 if a = b and b = c then print "Числа равны между собой" : goto 100 40 if a > b then swap a, b 50 if b > c then swap b, c 60 if a > b then swap a, b 70 if a > c then swap a, c 80 print "Минимум ", a 90 print "Максимум ", c 100 end
Задание 3: 10 rem Первая цифра - чётная? 20 input "Введите двузначное число ", a 30 if a < 10 or a > 99 then 20 33 me$ = "Начинается с чётной" 36 mo$ = "Начинается с нечётной" 40 if int(a / 10) mod 2 = 0 then print me$ else print mo$ 50 end
Задание 4: 10 rem Треугольник 20 input "Введите длину стороны а ", a 30 input "Введите длину стороны b ", b 40 input "Введите длину стороны c ", c 45 print "Составить такой треугольник "; 50 if a+b>c and a+c>b and b+c>a then 70 60 print "нельзя" 65 goto 90 70 print "можно" 83 if a=b and b = c then print "Треугольник равносторонний" : goto 90 86 if a=b or a=c or b=c then print "Треугольник равнобедренный" 90 end
const
m: array[1..8, 1..8] of byte =
((0, 1, 1, 1, 0, 0, 0, 0),
(1, 0, 0, 0, 1, 0, 1, 0),
(1, 0, 0, 0, 1, 1, 0, 0),
(1, 0, 0, 0, 0, 1, 1, 0),
(0, 1, 1, 0, 0, 0, 0, 1),
(0, 0, 1, 1, 0, 0, 0, 1),
(0, 1, 0, 1, 0, 0, 0, 1),
(0, 0, 0, 0, 1, 1, 1, 0));
var
n, i, j, k: integer;
a: array[0..100, 1..8] of int64;
begin
read(n);
a[0, 1] := 1;
for k := 1 to n do
for i := 1 to 8 do
for j := 1 to 8 do
if m[i, j] = 1 then
a[k, i] := a[k, i] + a[k - 1, j];
write(a[n, 8]);
end.
Задание 1:
10 rem Площадь круга и квадрата
20 input "Введите площадь круга"; SR
30 input "Введите площадь квадрата"; SK
40 a=sqr(SK)
50 c=sqr(a^2 * 2)
60 pi=3.1415926
70 r=sqr(SR/pi)
80 if a>=r then print "Круг поместится в квадрат":goto 110
90 if r>=c then print "Квадрат поместится в круг":goto 110
100 print "Фигуры не поместятся друг в друга"
110 print "---------------------------------":print
120 end
Задание 2:
10 rem Три числа
20 print "Введите три числа"
30 input a, b, c
35 if a = b and b = c then print "Числа равны между собой" : goto 100
40 if a > b then swap a, b
50 if b > c then swap b, c
60 if a > b then swap a, b
70 if a > c then swap a, c
80 print "Минимум ", a
90 print "Максимум ", c
100 end
Задание 3:
10 rem Первая цифра - чётная?
20 input "Введите двузначное число ", a
30 if a < 10 or a > 99 then 20
33 me$ = "Начинается с чётной"
36 mo$ = "Начинается с нечётной"
40 if int(a / 10) mod 2 = 0 then print me$ else print mo$
50 end
Задание 4:
10 rem Треугольник
20 input "Введите длину стороны а ", a
30 input "Введите длину стороны b ", b
40 input "Введите длину стороны c ", c
45 print "Составить такой треугольник ";
50 if a+b>c and a+c>b and b+c>a then 70
60 print "нельзя"
65 goto 90
70 print "можно"
83 if a=b and b = c then print "Треугольник равносторонний" : goto 90
86 if a=b or a=c or b=c then print "Треугольник равнобедренный"
90 end