712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918

Числа Кита

08.03.2021, 18:46. Показов 9289. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru