Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/40: Рейтинг темы: голосов - 40, средняя оценка - 4.63
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918

Числа Кита

08.03.2021, 18:46. Показов 8922. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Это числа, которые придумал математик Майк Кит. Они замечательны способом получения: если составить последовательность из цифр числа, сложить их, полученную сумму тоже добавить в последовательность, теперь сложить все полученные числа, кроме первого, и опять добавить сумму в последовательность и так далее, то в конце концов снова получим исходное число. Например, для числа 197 это выглядит так:

197 = 1 + 9 + 7 = 17
9 + 7 + 17 = 33
7 + 17 + 33 = 57
17 + 33 + 57 = 107
33 + 57 +107 = 197

Напишите программу, которая проверит, является ли введенное число числом Кита. Если да, то нужно вывести все последовательно получаемые в последовательности числа (для 197 это 1 9 7 17 33 57 107 197), а если нет, то просто NO.

Формат ввода
Целое число для проверки.

Формат вывода
Если это число является числом Кита, то вывести все последовательные числа его последовательности. Если не является, то просто вывести NO.

Пример 1
Ввод
197
вывод
1 9 7 17 33 57 107 197

Пример 2
Ввод
2021
вывод
NO
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.03.2021, 18:46
Ответы с готовыми решениями:

Нарисовать кита
Здраствуйте. Сегодня должен сдать все работы, не хватает одной практической т.к не умею рисовать во всех проявлениях. Даже на командах в...

Нарисовать кита
Ссылка на сторонний ресурс удалена нужно нарисовать кита,сам не шарю,заранее спасибо!!! almas5, ссылки на сторонние ресурсы...

О числах Кита
Здравствуйте. Подскажите, пожалуйста, как в коде ниже дополнительно реализовать поиск обратных чисел Кита? Что-то никак не могу додуматься...

31
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
08.03.2021, 20:41
Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from collections import deque
from itertools import islice
 
def digits(n):
    while n > 0:
        n, r = divmod(n, 10)
        yield r
        
def solution():
    n = int(input())
    result = deque()
    result.extendleft(digits(n))
    len_ = len(result)
    while result[-1] < n:
        result.append(sum(islice(result, len(result) - len_, None)))
    print(*result if result[-1] == n else ("NO",))
 
solution()
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
08.03.2021, 20:45  [ТС]
Цитата Сообщение от Arsegg Посмотреть сообщение
Python
1
2
from collections import deque
from itertools import islice
Цитата Сообщение от Arsegg Посмотреть сообщение
divmod(n, 10)
Цитата Сообщение от Arsegg Посмотреть сообщение
islice(result, len(result) - len_, None))
Цитата Сообщение от Arsegg Посмотреть сообщение
yield r
а что эти функции делают?
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
08.03.2021, 20:58
Цитата Сообщение от alilxxey Посмотреть сообщение
а что эти функции делают?
1) divmod;
2) itertools.islice;
3) Generators.
1
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
08.03.2021, 21:01  [ТС]
Arsegg, спасибо
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
08.03.2021, 21:25
Python
1
2
3
4
5
6
7
8
9
10
11
n = int(input())
a = [int(x) for x in str(n)]
s = sum(a)
res = a
while s < n:
    a, s = a[1:]+[s], s+(s-a[0])
    res.append(s)
if s == n:
    print(*res)
else:
    print('NO')
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
08.03.2021, 21:43
alilxxey, жесть, зачем такое сложное решение

Добавлено через 40 секунд
eaa, молодец oeis скопипастил
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
08.03.2021, 21:51  [ТС]
Цитата Сообщение от gray621 Посмотреть сообщение
жесть, зачем такое сложное решение
как умею)
0
0 / 0 / 0
Регистрация: 10.03.2021
Сообщений: 2
10.03.2021, 22:58
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import re
 
 
def kit_number(chislo, flag):
    items = re.findall(r'\d', chislo)
    lent = len(chislo)
    index = 0
    while True:
        number = 0
        for j in range(lent):
            number += int(items[index + j])
            if flag:
                if j == 0:
                    print("▌" + " " * (index * 2), int(items[index + j]), end=" + ")
                elif j + 1 == lent:
                    print(int(items[index + j]), "=", number, end="")
                else:
                    print(int(items[index + j]), end=" + ")
            if number == ch:
                if flag:
                    print()
                    print("▌ Число Кита:", number)
                    p = input("Искать следующее? ")
                    print()
                    return False
                kit_number(str(ch), True)
                return False
        items.append(str(number))
        if flag:
            print()
        index += 1
        if number > ch:
            return False
 
 
ch = 10
maxx = 44121607  # максимально известное на сегодняшний день число Кита
print("                            == ЧИСЛА КИТА ==")
print("        Программа поиска, возможно, самых редких чисел в математике")
print("                  До сих пор их найдено всего 100 штук!")
print("                   Последовательность начинается так:")
print("        14, 19, 28, 47, 61, 75, 197, 742, 1104, 1537, 2208, 2580,")
print("   3684, 4788, 7385, 7647, 7909, 31331, 34285, 34348, 55604, 62662...")
print("             Максимальное известное на сегодняшний день", maxx)
p = input("                               Начать? ")
 
while ch < maxx:
    kit_number(str(ch), False)
    ch += 1
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
10.03.2021, 23:11
vinnyluc, эмм, нет, известно где-то 100 чисел, 44121607 не максимально известное, это одно из первых
0
0 / 0 / 0
Регистрация: 10.03.2021
Сообщений: 2
11.03.2021, 08:56
Не, ошибаешься. Это именно максимально известное. Первое это 14
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
11.03.2021, 16:59
vinnyluc, ахаха, я даже сам сгенерировал до 100 миллионов

Добавлено через 1 минуту
почитай https://ru.wikipedia.org/wiki/... 1%82%D0%B0
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
12.03.2021, 12:15  [ТС]
gray621, Числа Ки́та ввёл Майк Кит[en] в 1987[1]. Числа трудно найти, на 2017 год известно только 100 таких чисел.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.03.2021, 12:15
Помогаю со студенческими работами здесь

Нарисовать кита
Помогите пожалуйста нарисовать кита в Pascal как на рисунке ниже (без координатной плоскости).

Нарисовать кита
нужно расположить рисунок в каждом углу и посередине экрана

Три кита ООП
Нужно показать, где в коде находятся Инкапсуляция, Наследование, Полиморфизм. Помогите пожалуйста это сделать. class Game { ...

Нарисовать кита с небольшим фонтаном
помогите пожалуйста с рисунком!!!=) мне нужно нарисовать кита с небольшим фонтаном=)

3 кита ВизБасика ;) сплошной оффтоп
АААА.....я реально идиот....ступила...блин..стыдно..сейчас все сделала как надо, конечно с вашей помощью. Работает отлично. Спасибо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru