Форум » Рекурсивные процедуры и функции » 16 задание, номер 96 » Ответить

16 задание, номер 96

AnnaPershina: Подскажите,пожалуйста, где ошибка? import sys sys.setrecursionlimit(200) def G(n): if n<10: return G(F(n)) else: return n%10+ G(n//10) def F(n): if n<10: return n else: return n%10+F(n//10) s=0 n=1 while True: try: x=G(n) if (n > 9) and (n < 100): s+=x except: pass n+=1 if n==100: break print(s)

Ответов - 4

Поляков: Первая ошибка в том, что вы не оформили текст программы так, как рекомендовано в верхней части страницы (см. текст на желтом фоне). Так очень сложно разбираться.

AnnaPershina: Поняла замечание. Спасибо большое. Учту.

polyakovss: Здравствуйте, AnnaPershina! Во-первых, полностью согласен с замечанием Константина Юрьевича. А ошибка у Вас в определении функции G(n). Рекурсивно: [pre2] def F(n): if n < 10: return n else: return n % 10 + F(n // 10) def G(n): if n < 10: return n else: return G(F(n)) s = 0 for k in range(10,100): s += G(k) print(s)[/pre2]Без рекурсии:[pre2]def f(n): a = [x for x in range(10)] b = [] for k in range(10,n+1): a.append(k % 10 + a[k // 10]) b.append(a[a[k]]) return b print(sum(f(99))) [/pre2]


AnnaPershina: Огромное спасибо. Поняла.



полная версия страницы