1) изобразите в виде графа информацию об организации мотострелкового батальона армии .
в середине 70-х годов мотострелковый батальон советской армии насчитывал 385 человек и имел следующую структуру. во главе стоял командир батальона. ему подчинялись , штаб, три мотострелковые роты, взвод связи, миномётная батарея, противотанковый взвод, отделение технического обслуживания, взвод снабжения и батальонный медицинский пункт. в батальонов входили сам комбат, заместитель по политической части, заместитель по технической части и техник батальона. штаб состоял из начальника штаба, начальника связи, инструктора-дозиметриста, писаря и водителя бронетранспортёра. начальник связи являлся командиром взвода связи (ещё 12 миномётная батарея состояла из (10 чел.) и двух взводов по 20 чел., а в каждом — по три 120-мм миномёта. противотанковый взвод состоял из отделения станковых противотанковых гранатомётов (8 чел., 2 гранатомёта спг-9) и двух отделений противотанковых ракет (по 6 чел. и по 2 птурс в отделении). отделение технического обслуживания: командир отделения, водитель-автослесарь и старший механик. взвод снабжения: командир взвода, его заместитель, хозяйственная часть (3 чел.) и автотранспортное отделение (4 батальонный медицинский пункт: начальник пункта, шофёр-санитар и 2 санитара.
мотострелковая рота состояла из (командир роты, заместитель по политической части, старшина роты), пулемётного отделения и трёх мотострелковых взводов. пулемётное отделение состояло из командира отделения, водителя бронетранспортёра и двух пулемётных расчётов, в каждом пулемётчик и пулемётчика. мотострелковый взвод имел командира взвода, заместителя командира и три мотострелковых отделения. в каждом отделении: командир отделения, пулемётчик, гранатомётчик, гранатомётчика, старший автомеханик, 3 автоматчика и водитель бронетранспортёра.
Программа:
def F(n):
if n <= 18:
return n + 3
elif n > 18 and n % 3 == 0:
return (n // 3) * F(n // 3) + n - 12
else:
return F(n - 1) + n * n + 5
k = 0
for i in range(1, 801):
m = 0 # Обнуляем переменную проверки длины четных цифр в числе
for j in range(len(str(F(i: # Пробежимся по длине числа (От 0 до len('число'))
if int(str(F(i))[j]) % 2 == 0: # Проверяем каждую цифру числа на чётность
m += 1
if m == len(str(F(i))): # Если значение переменной совпадает с длиной числа, то..
k += 1
print(k)
ответ: 16
(см. объяснение)
Объяснение:
В прикрепленных файлах приведено решение на python и pascal.
ответом будет число 16.
Задание выполнено!
Скопировать код:
##
function F(n: integer): integer;
begin
if(n<=18) then F:= n+3
else if((n>18) and (n mod 3 = 0)) then F:= (n div 3)*F(n div 3)+n-12
else if((n>18) and (n mod 3 >0)) then F:= F(n-1)+n*n+5;
end;
var k: integer := 0;
for var i: integer := 1 to 800 do
begin
var t: integer := 1;
foreach var c: char in F(i).ToString do
if(Integer.Parse(c) mod 2 > 0) then
begin
t:= 0;
break;
end;
if(t=1) then k:= k+1;
end;
print(k);
def f(n):
if n <= 18:
return n + 3
elif n > 18 and n % 3 == 0:
return (n // 3) * f(n // 3) + n - 12
elif n > 18 and n % 3 > 0:
return f(n - 1) + n * n + 5
k = 0
for p in range(1, 801):
e = 1
for s in str(f(p)):
if int(s) % 2 > 0:
e = 0
break
if e == 1:
k += 1
print(k)