1 / 1 / 0
Регистрация: 29.08.2020
Сообщений: 57

Страшный калькулятор

31.05.2021, 23:14. Показов 5381. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите программу, которая принимает на вход список длин в разных единицах измерения (миллиметры, сантиметры, метры, километры) и выводит сумму его элементов, представленную в наиболее подходящих единицах измерения: так, чтобы длина получившейся строки была минимальна.
Помогите пожалуйста решить! Буду очень благодарен!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.05.2021, 23:14
Ответы с готовыми решениями:

Страшный запрос
Здравствуйте. Подскажите или сделайте) Как эти 2 запроса сделать в один $sb = $GLOBALS->GetAll('SELECT...

Страшный экран
Строил сайт и сам не заметил, как получил вот такое, при переходе с второстепенной страницы на главную (был в пункте правого меню и потом...

Страшный и ужасный decimal
Многоуважаемый Ол (All). Подскажите пожалуйста что это за чо? > var d1 = decimal.Parse("1,000"); > var d2 =...

30
5525 / 2878 / 572
Регистрация: 07.11.2019
Сообщений: 4,773
03.06.2021, 00:10
Студворк — интернет-сервис помощи студентам
Очередная правка:
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from fractions import Fraction
text='100000мм'
txt_list=text.split()
units=('мм','см', 'км', 'м')
power=list(map(Fraction, ['1/1000', '1/100', '1000', '1']))
distance=Fraction(0)
for word in txt_list:
    for idx, unit in enumerate(units):
        if unit==word[-len(unit):]:
            distance+=(power[idx]*Fraction(word[:-len(unit)])) # convert to meters
            break
distance_txt=[]
for i in range(len(units)):
    distance_txt.append(f'{float(distance/power[i]):g}{units[i]}')
print(min(distance_txt, key=len))
1
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
03.06.2021, 00:56
Цитата Сообщение от u235 Посмотреть сообщение
Очередная правка:
А ты упорный человек . Добрался до отметки в 56 пройденных тестов.
Кликните здесь для просмотра всего текста
Code
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
50
51
52
53
54
55
56
57
......................FF........
................FF.F..F...F....
================================
================================
FAIL: _22 (__main__.CalcTests)
 
Вход: 1000001мм
Выход: 1км
Несовпадение: 1км != 1000001мм.
================================
================================
FAIL: _23 (__main__.CalcTests)
 
Вход: 1000010мм
Выход: 100001см
Строка "100001см" по длине больше, чем строка "1км 1см".
================================
================================
FAIL: _48 (__main__.CalcTests)
 
Вход: 1000011мм
Выход: 100001см
Несовпадение: 100001см != 1000011мм.
================================
================================
FAIL: _49 (__main__.CalcTests)
 
Вход: 1000101мм
Выход: 1000.1м
Несовпадение: 1000.1м != 1000101мм.
================================
================================
FAIL: _51 (__main__.CalcTests)
 
Вход: 1001001мм
Выход: 1001м
Несовпадение: 1001м != 1001001мм.
================================
================================
FAIL: _54 (__main__.CalcTests)
 
Вход: 1010001мм
Выход: 1010м
Несовпадение: 1010м != 1010001мм.
================================
================================
FAIL: _58 (__main__.CalcTests)
 
Вход: 1100001мм
Выход: 1.1км
Несовпадение: 1.1км != 1100001мм.
--------------------------------
--------------------------------
 
Ran 63 tests in 0.024s
 
FAILED (failures=7)
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,318
03.06.2021, 06:16
Лучший ответ Сообщение было отмечено ArtAndreev21 как решение

Решение

КулХацкеръ,
Python
1
2
3
4
5
6
for i in range(len(units)):
    res = distance/power[i]
    if int(res) == res:
        res = int(res)
    distance_txt.append(str(res)+unit)
print(min(distance_txt, key=len))
А вывод "1км 1мм" вместо "1000001мм" -> мне кажется спорен -> иначе в тестах верным ответом должен быть, например, "9*10^9км" или "9*10**9км" вместо "9000000000км". Или в условиях должна быть прописана возможность применения нескольких единиц измерения в ответе; или должны быть примеры, где это показывется
3
1 / 1 / 0
Регистрация: 29.08.2020
Сообщений: 57
03.06.2021, 13:53  [ТС]
спасибо

Добавлено через 3 минуты
А что такое unit? это то что на ввод даётся?
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,318
03.06.2021, 14:03
ArtAndreev21,
unit - единица измерения длины
text - вводные данные ("то, что на ввод даётся")

Добавлено через 1 минуту
"Расшифровка" в начале кода u235
0
1 / 1 / 0
Регистрация: 29.08.2020
Сообщений: 57
03.06.2021, 14:05  [ТС]
точно, понял. Благодарю
0
0 / 0 / 0
Регистрация: 10.05.2020
Сообщений: 57
01.07.2021, 18:50
Программа ошибается при вводе 1м 10см
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,318
01.07.2021, 19:29
JessyPinkman,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from fractions import Fraction
text='1м 10см'
txt_list=text.split()
units=('мм','см', 'км', 'м')
power=list(map(Fraction, ['1/1000', '1/100', '1000', '1']))
distance=Fraction(0)
for word in txt_list:
    for idx, unit in enumerate(units):
        if unit==word[-len(unit):]:
            distance+=(power[idx]*Fraction(word[:-len(unit)])) # convert to meters
            break
distance_txt=[]
 
for i in range(len(units)):
    res = distance/power[i]
    if int(res) == res:
        res = int(res)
    distance_txt.append(str(res)+units[i])
print(min(distance_txt, key=len))
0
0 / 0 / 0
Регистрация: 10.05.2020
Сообщений: 57
01.07.2021, 19:32
она и ошибается
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,318
01.07.2021, 21:23
JessyPinkman, выводит 110см
А должно?
0
0 / 0 / 0
Регистрация: 10.05.2020
Сообщений: 57
01.07.2021, 22:06
Должно 1.1м
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.07.2021, 22:06
Помогаю со студенческими работами здесь

Страшный размер DB.mdb
Всем привет, проблема в следующем, некоторое время работал с базой через приложение (C++ Builder 6) . Как вскоре появилась ошибка...

Самый страшный вирь
Здравствуйте. Подхватил вирь под названием Trojan.Win32.Agent.aec. Перестали запускаться .ехе файлы. При попытке запуска выскакивает...

Страшный звук при включении.
вчера поставил новый проц(e8400 был e7200) разогнал до 415х9 на 1.4в(e7200 работал так-же, но на 1.45в) переставил комп в корпус(до этого...

Самый страшный фильм ужасов!
Может кто-то знает нормальный фильм ужасов?

Импликация - страшный суд, ад и погибель
Читаю Шилтда. Глава Операторы. Помогите разобрать как и в какой последовательности работает следующий код : using System; ...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Опции темы

Новые блоги и статьи
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
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