Автор | Сообщение |
|
Отправлено: 04.10.21 11:15. Заголовок: 16 задание, номер 96
Подскажите,пожалуйста, где ошибка? 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
[только новые]
|
|
|
| Администратор
|
Сообщение: 2929
|
|
Отправлено: 04.10.21 19:08. Заголовок: Первая ошибка в том,..
Первая ошибка в том, что вы не оформили текст программы так, как рекомендовано в верхней части страницы (см. текст на желтом фоне). Так очень сложно разбираться.
|
|
|
|
Отправлено: 05.10.21 05:26. Заголовок: Поняла замечание. Сп..
Поняла замечание. Спасибо большое. Учту.
|
|
|
|
Отправлено: 04.10.21 23:41. Заголовок: Ответ
Здравствуйте, AnnaPershina! Во-первых, полностью согласен с замечанием Константина Юрьевича. А ошибка у Вас в определении функции G(n). Рекурсивно: цитата: | 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) |
|
Без рекурсии: цитата: | 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))) |
|
|
|
|
|
Отправлено: 05.10.21 05:26. Заголовок: Огромное спасибо. По..
Огромное спасибо. Поняла.
|
|
|
|