В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия

Решите на пайтон Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = n + 3, при n ≤ 18
F(n) = (n//3)*F(n//3) + n - 12, при n > 18, кратных 3
F(n) = F(n-1) + n*n + 5, при n > 18, не кратных 3
Здесь // обозначает деление нацело. Определите количество натуральных значений n из отрезка [1; 800], для которых все цифры значения F(n) чётные.

Показать ответ
Ответ:
maximkolosov66
maximkolosov66
04.09.2021 12:51

Программа:

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

0,0(0 оценок)
Ответ:
nikarh
nikarh
04.09.2021 12:51

(см. объяснение)

Объяснение:

В прикрепленных файлах приведено решение на 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)


Решите на пайтон Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующ
Решите на пайтон Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующ
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота