Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 08.09.2020
Сообщений: 36

Задача на определение ценности цифр

09.09.2020, 22:01. Показов 4052. Ответов 38

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Прошу помочь с задачей. Словил затуп, 9/10 автоматизированных проверок выполнено успешно. Не понимаю какое условие/ситуацию упустил из виду. Что вводит автомат понятия не имею)

Python
1
2
3
4
5
6
7
8
9
10
11
12
n=int(input())
a1, a2, a3, a4, a5, a6, a7, a8, a9 = map(int, input().split())
a=[a1, a2, a3, a4, a5, a6, a7, a8, a9]
b=[]
for i in range(9):
    b.append(n//a[i])
    if a[i] == min(a):
        minimal = i
    if b == [0, 0, 0, 0, 0, 0, 0, 0, 0]:
        b[0]=1
        minimal=-2
print(int(max(b)*str(minimal+1)))
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2020, 22:01
Ответы с готовыми решениями:

Задача на определение количества четных цифр стоящих на нечетных позициях
Дано целое положительное число. Определить количество четных цифр, стоящих на нечетной позиции.

Подсчет количества цифр числа n, сумму его цифр и определение его первой цифры
Дано натуральное число n. Составить программу, подсчитывающую количество цифр числа n, сумму его цифр и определяющую его первую цифру....

Ценности для кубиков
Помогите решить задачки, пожалуйста 1. Вам дано описание пирамиды из кубиков в формате XML. Кубики могут быть трех цветов: красный...

38
0 / 0 / 0
Регистрация: 08.09.2020
Сообщений: 36
10.09.2020, 11:37  [ТС]
Студворк — интернет-сервис помощи студентам
Gdez, да нет, чисел сколь угодно много может быть. Количество денег может быть 1000 как и расценки по цифрам могут быть разными. Тут как-то, я просто пока не могу догадаться как, необходимо чтобы он перебрал возможные варианты. Начинал с минимальных и по очереди, если остаток, то откатить на шаг назад и попробовать подставить следующий по величине.

К слову сейчас вообще 0/10 было((
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
10.09.2020, 11:51
Условие - если золота нет ни на одну цифру, то "-1"
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
n = int(input())
a = list(map(int,input().split()))
aa = sorted(list(set(a)),reverse = True)
if n < aa[-1] :
    print(-1)
else :
    num_end = 9 - a[::-1].index(aa[-1])
    k = n // aa[-1] - 1
    ost = n - k * aa[-1]
    j = 9
    num_one = num_end 
    for i in a[num_end :][::-1] :
        if ost >= i  :
            num_one = j
            break
        j -= 1
    print(str(num_one) + str(num_end) * k)
0
0 / 0 / 0
Регистрация: 08.09.2020
Сообщений: 36
10.09.2020, 11:59  [ТС]
Gdez, теперь 9/10. При чем ошибка в том же номере проверки что и у меня..

Добавлено через 1 минуту
жаль оно не пишет что тестируется, какие входные данные
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
10.09.2020, 12:07
Ошибка вычисления или по времени?
0
0 / 0 / 0
Регистрация: 08.09.2020
Сообщений: 36
10.09.2020, 12:08  [ТС]
Gdez, вычисление. "Неправильный вывод"
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
10.09.2020, 16:47
Решил?
0
0 / 0 / 0
Регистрация: 08.09.2020
Сообщений: 36
10.09.2020, 21:52  [ТС]
Gdez, до сих пор нет! Написал такое, вроде норм срабатывает при моих тестах.. а там та же вот 9/10
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
n = int(input())
a = list(map(int,input().split()))
b=[]
summ=0
min_a=min(a)
if n < min_a:
    print(-1)
else:
    for i in range(9):
        if a[i] == min_a:
            minimal = i
    kol_razr=n//a[minimal]
    for i in range(kol_razr):
        b.append(minimal+1)
    ost = n%a[minimal]
    if ost < min_a and ost != 0:
        for i in range(9):
            if n-(min_a+ost) == a[i]:
                b[0] = i
print(int(''.join(map(str, b)))
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
10.09.2020, 22:04
Ерунда какая то....


У тебя в одном ошибка:
Python
1
if n-(min_a+ost) == a[i]
Нужно >=
Совпадения может и не быть

Добавлено через 2 минуты
Ну в крайнем случае 9 баллов)
1
0 / 0 / 0
Регистрация: 08.09.2020
Сообщений: 36
10.09.2020, 22:16  [ТС]
Gdez, реально бред какой-то.. Если бы оно хоть показывало, что оно там вводит! Так не показывает же.. и везде одинаковая ошибка. Чего ему надобно)
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
10.09.2020, 22:17
Нашел ошибку в алгоритме
0
0 / 0 / 0
Регистрация: 08.09.2020
Сообщений: 36
10.09.2020, 22:18  [ТС]
Gdez, ого!) Вот это здорово
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
10.09.2020, 22:21
Дотустим
11
11 11 3 4 11 11 11 11 11
Программа выведет
433
А должно(!) быть
443

Добавлено через 2 минуты
Тогда нужно так:
Находим минимум самый правый (если их несколько)
Потом, начиная со следующего, добавляем первой цифрой следующую цифру...
0
0 / 0 / 0
Регистрация: 08.09.2020
Сообщений: 36
10.09.2020, 22:24  [ТС]
Gdez, ох.. сегодня уже башка не варит) завтра попробую)
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
10.09.2020, 22:29
Лучше на примере:
11
11 12 133 3 3 3 4 4 24
Минимум -3
Номер его - 6
11//3 = 3
Значит число пока 666
Остается список - 4(7) 4(8) 24(9)
Берем семерку = 4
Получили 766 > 666
Определяем цену числа == 10
Это меньше 11, тогда меняем вторую тройку - 776 > 766
Определяем цену == 11
Запоминаем его и переходим на "восьмерку" ...
Получаем последовательно 876 и 886
И так до конца
0
0 / 0 / 0
Регистрация: 08.09.2020
Сообщений: 36
10.09.2020, 22:38  [ТС]
Gdez, вполне имеет место быть. Прост я отталкивался от того что только последняя цифра может влево вправо, а тут и другие могут
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
11.09.2020, 08:04
Лучший ответ Сообщение было отмечено TOXEM как решение

Решение

TOXEM,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
n = int(input())
a = list(map(int,input().split()))
aa = min(a)
if n < aa :
    print(-1)
else :
    num = 9 - a[::-1].index(aa)
    k = n // aa 
    res = str(num) * k
    ost = n - k * aa
    for i in range(8,num,-1) :
        ost_temp = ost
        if ost_temp >= a[i] - aa :
                ki = ost_temp // (a[i] - aa)
                if int(ki * str(i + 1) + (k - ki) * str(num)) > int(res) :
                    res = ki * str(i + 1) + (k - ki) * str(num)
    print(int(res))
Добавлено через 2 часа 47 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
n = int(input())
a = list(map(int,input().split()))
aa = min(a)
if n < aa :
    print(-1)
else :
    num = 9 - a[::-1].index(aa)
    k = n // aa 
    res = str(num) * k
    ost = n - k * aa
    for i in range(8,num-1,-1) :
        if ost >= a[i] - aa :
                ki = ost // (a[i] - aa)
                res = res[ki:] + ki * str(i + 1)
                ost -= ki * (a[i] - aa)
                k -= ki
    print(res[k:] + res[:k])
возможный "10"-й тест:
n = 3839
a = 384 386 387 390 396 408 432 480 576
ответ = 987654321
1
0 / 0 / 0
Регистрация: 08.09.2020
Сообщений: 36
11.09.2020, 10:04  [ТС]
Gdez, да, все верно. 10/10. Огромное спасибо) можно разъяснить по строчкам)
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
11.09.2020, 10:45
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
n = int(input())
a = list(map(int,input().split()))
aa = min(a)
if n < aa :
    print(-1)
else :
    num = 9 - a[::-1].index(aa)
    # изначально число выглядит 1111111...( здесь "1" - промто как минимум)
    # в цикле ниже после одного шага ~ 11119...
    # после следующего шага ~ 111198...
    k = n // aa  # максимально возможное число цифр в числе
    res = str(num) * k # минимальное число из цифр с минимальной ценой
    ost = n - k * aa # остаток золота после покупки "к" цифр с мин ценой
    for i in range(8,num-1,-1) : # обратный цикл от "9" до минимума
        if ost >= a[i] - aa : # если остаток больше, чем разница в цене "9" и мин ценой
                ki = ost // (a[i] - aa) # то определяем кол-во замен 
                #минимумов на текущую ("9" в начале) цифру
                res = res[ki:] + ki * str(i + 1) # первое слагаемое - число 
                # без "ki" минимумов; второе - "ki" кол-во текущей цифры
                ost -= ki * (a[i] - aa) # остаток золота после замены "ki" 
                # минимумов на "ki" текущей цифры
                k -= ki # остаток кол-ва минимумов
                # переходим к следующему "i" - к следующей цифре
    print(res[k:] + res[:k]) # переносим оставшиеся "k" минимумов
                     # из начала числа в его конец
А последние числа подобрал таким образом, что есть всегда остаток до второй цифры
1
0 / 0 / 0
Регистрация: 27.09.2020
Сообщений: 4
28.09.2020, 22:36
В первой строке содержится два целых числа t и k (1 ≤ t ≤ 20; 1 ≤ k ≤ 10) разделенные пробелом. Каждая из следующих t строк содержит (также через пробел) два целых числа m и n (1 ≤ m, n ≤ 10) – размеры игровой карты.
Выходные данные
Выведите t строк – исходы игры для каждой карты в порядке их следования во входных данных. Если первый
игрок имеет выигрышную стратегию, выведите «+» (без кавычек), иначе выведите «-» (без кавычек).
Пример
Входные данные
1 10
10 10
Выходные данные
-

ПОМОГИ СДЕЛАТЬ НА PYTHON ПЕРЕНЕСТИ(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2020, 22:36

Короткая гипотеза не ценности деталей
Гипотеза короткая и каждый основанья столб велик. Сказал он натянув условну нитку между столбами подразумевающегося забора. Я тот...

Запрос в MS access бд Материальные ценности
Здравствуйте! у меня вопрос: как создать на форме получить возможность добавлять записи из другой таблицы или формы?

Шифрование без практической ценности // ненадежный
Накидал небольшой метод, который производит действия с байтами char. Насколько я знаю, это ненадежные методы, но как извлечь данные,...

Программа вычисления ценности аренды автомобиля
1. Напишите программу вычисления ценности аренды автомобиля. Входные данные - час аренды и тип автомобиля. Если бьем двигателя больше 3,5...

Увеличить залоговую стоимость экспоната в зависимости от ценности
Всем привет) Мне нужна помощь, надо сделать задание в запросе. Задание:Увеличить залоговую стоимость экспоната в зависимости от...


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

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru