57 / 15 / 6
Регистрация: 08.08.2020
Сообщений: 266

Задача "Счастливый билет"

12.08.2020, 20:51. Показов 18163. Ответов 35
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста с решением задачи. "Счастливым билетом называют такой билет с шестизначным номером (иногда и с незначащими нулями), где сумма первых трех цифр равна сумме последних трех. Т.е. билеты с номерами 385916 и 001010 – счастливые, т.к. 3+8+5=9+1+6 и 0+0+1=0+1+0. Вам требуется написать программу, которая проверяет счастливость билета.
Программа получает на вход одно целое число N (0 ≤ N < 106) и должна вывести «YES», если билет с номером N счастливый и «NO» в противном случае."
Я написал код для шестизначных чисел, но на платформе где эта задача давалась в тесте вводится и 4-х значное число, причем вводится число 5203 и результат 'YES'. Тестов там по этой задаче больше 90, похоже что и числа вводятся разноразрядные. Ничего не пойму.Помогите пожалуйста. Только без сложностей, функции, while, import и тд не использовать. Это задача по спискам и if
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.08.2020, 20:51
Ответы с готовыми решениями:

Задача "Счастливый билет"
Вы пользуетесь общественным транспортом? Вероятно, вы расплачивались за проезд и получали билет с номером. Счастливым билетом называют...

Счастливый билет
Дан шестизначный номер билета. Определить, является ли билет счастливым. Билет считается счастливым, если сумма его первых и последних цифр...

Счастливый билет
Здравствуйте. Есть задание: Напишите функцию ticket_type, которая получает номер билета в виде строки из шести цифр и возвращает его...

35
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
12.08.2020, 21:04
Zay, Под числом 5203 , как я понимаю, подразумевается число с ведущими нулями. То есть 005203. То есть при вводе числа нужно проверять количество символов, и если их меньше шести, то добавлять ведущие нули, и проверять уже это число. Код напишите сами.
0
 Аватар для Semen-Semenich
5168 / 3421 / 1163
Регистрация: 21.03.2016
Сообщений: 8,252
12.08.2020, 21:05
Python
1
2
3
data = list(map(int, list(input())))
moiety = len(data) // 2 
print('YES' if sum(data[:moiety]) == sum(data[moiety:]) else 'NO')
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7341 / 4767 / 1237
Регистрация: 30.03.2015
Сообщений: 13,559
Записей в блоге: 29
12.08.2020, 21:05
Zay, не раз тут решалось, элементарная задача
0
 Аватар для Semen-Semenich
5168 / 3421 / 1163
Регистрация: 21.03.2016
Сообщений: 8,252
12.08.2020, 21:12
Цитата Сообщение от Viktorrus Посмотреть сообщение
То есть 005203. То есть при вводе числа нужно проверять количество символов
я об этом как то не подумал
Python
1
2
3
4
5
data = list(input())
len_dat = len(data)
if len_dat < 6:
    data = list(map(int, list('0' * (6 - len_dat)) + data))
print('YES' if sum(data[:3]) == sum(data[3:]) else 'NO')
0
57 / 15 / 6
Регистрация: 08.08.2020
Сообщений: 266
12.08.2020, 21:25  [ТС]
Я именно по такому алгоритму и пробовал написать другой код. добавлял слева два ноля, правда до конца так и доделал, выпрыгивала ошибка, завтра напишу свой код сюда. Но этот код затрагивает четырех значные числа и шестизначные, а тест ведь может вводить и 8 и 10 и 20 и 2-х знасные числа. Это что писать код для всех возможных вариантов? По условию задачи максимальное число 10 в 6 степени.
0
Эксперт Python
8811 / 4464 / 1862
Регистрация: 27.03.2020
Сообщений: 7,287
12.08.2020, 21:27
Тогда проще - сумма всех цифр равна удвоенной сумме трех последних цифр
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7341 / 4767 / 1237
Регистрация: 30.03.2015
Сообщений: 13,559
Записей в блоге: 29
12.08.2020, 21:28
Цитата Сообщение от Zay Посмотреть сообщение
а тест ведь может вводить и 8 и 10 и 20 и 2-х знасные числа.
с чего?
вот же
Цитата Сообщение от Zay Посмотреть сообщение
"Счастливым билетом называют такой билет с шестизначным номером (иногда и с незначащими нулями), где сумма первых трех цифр равна сумме последних трех.
0
57 / 15 / 6
Регистрация: 08.08.2020
Сообщений: 266
12.08.2020, 21:33  [ТС]
Так получается и доя двузначных надо прописать.Хорошо, спасибо, выложу свой код что бы подкоректировать его, это доя вас просто, а я только 2 недели в этом)), что то там уменя не клеется.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7341 / 4767 / 1237
Регистрация: 30.03.2015
Сообщений: 13,559
Записей в блоге: 29
12.08.2020, 21:37
Цитата Сообщение от Zay Посмотреть сообщение
Так получается и доя двузначных надо прописать.
нет, прочти задачу
0
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
12.08.2020, 21:41
Semen-Semenich, У Вас для укороченных чисел выдает не верный результат.
Цитата Сообщение от Zay Посмотреть сообщение
причем вводится число 5203 и результат 'YES'
. А у Вас результат
5203
NO
В Вашем коде срезы нужно отсчитывать от длины отнимая 3. Это будет граница для формирования срезов.
Python
1
2
3
data = list(map(int, list(input())))
moiety = len(data) - 3 
print('YES' if sum(data[:moiety]) == sum(data[moiety:]) else 'NO')
Выводит:
Python
1
2
5203
YES
Добавлено через 4 минуты
Python
1
2
203
NO
Python
1
2
20
NO
0
Эксперт Python
8811 / 4464 / 1862
Регистрация: 27.03.2020
Сообщений: 7,287
12.08.2020, 21:43
Python
1
2
data = list(map(int, list(input())))
print('YES' if sum(data[-3:]) == a - sum(data[-3:]) else 'NO')
0
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
12.08.2020, 21:51
Цитата Сообщение от Welemir1 Посмотреть сообщение
нет, прочти задачу
Цитата Сообщение от Welemir1 Посмотреть сообщение
Счастливым билетом называют такой билет с шестизначным номером (иногда и с незначащими нулями), где сумма первых трех цифр равна сумме последних трех
20, это число 000020. Четыре не значащих нуля опускаются, как и в случае, который в условии
5203 эквивалентно 005203, где два незначащих нуля опущены.
То есть в условии подразумевается, что вводится любое число с количеством цифр равным или меньшим 6 (с подразумеваемыми не значащими нулями) и оно проверяется на "счастье".
Я эту задачу понимаю так.
0
Эксперт Python
8811 / 4464 / 1862
Регистрация: 27.03.2020
Сообщений: 7,287
12.08.2020, 21:54
Ошибся)))
Python
1
2
data = list(map(int, list(input())))
print('YES' if sum(data[-3:]) == sum(data) - sum(data[-3:]) else 'NO')
0
32 / 28 / 5
Регистрация: 02.08.2020
Сообщений: 132
Записей в блоге: 1
12.08.2020, 21:54
Zay, исходя из условий номер может быть как шестизначный, так и пяти, четырёх, трёх, двух то есть ведущие нули не пишутся. то мб как то так
Python
1
2
3
4
5
n='{:0>6}'.format(str(N))
if sum(map(int,n[:3]))>sum(map(int,n[3:])):
    print('yes')
else:
    print('no')
0
 Аватар для Semen-Semenich
5168 / 3421 / 1163
Регистрация: 21.03.2016
Сообщений: 8,252
12.08.2020, 21:55
Viktorrus, я переписал ниже и вроде выводит правильно
Python
1
2
3
4
5
6
5203
YES
>>>
203
NO
>>>
0
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
12.08.2020, 21:56
Gdez, Ваш код выдает ошибку, так как у Вас не определена переменная "a" .
0
Эксперт Python
8811 / 4464 / 1862
Регистрация: 27.03.2020
Сообщений: 7,287
12.08.2020, 21:57
Исправил ниже
0
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
12.08.2020, 22:01
Gdez, Вот теперь, после исправления, работает.

Добавлено через 2 минуты
Semen-Semenich, И у Вас второй вариант теперь правильно работает.
1
57 / 15 / 6
Регистрация: 08.08.2020
Сообщений: 266
12.08.2020, 22:09  [ТС]
поразбираюсь с Вашими кодами попозже, спасибо всем. Я пытался этот код запустить, но в силу своей "недалекости")) не смог. Понимаю что нагромоздил, но исправьте его пожалуйста.
Python
1
2
3
4
5
6
7
8
9
10
11
a = [int(i) for i in input()]
b=len(a)
if b==6 and sum(a[:len(a)//2]) == sum(a[len(a)//2:]):
    print('YES')
elif b==4:
    a.insert(0,0)
    a.insert(0,0)
        if sum(a[:len(a)//2]) == sum(a[len(a)//2:]):
            print('YES')
else:
    print('NO')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.08.2020, 22:09
Помогаю со студенческими работами здесь

Счастливый билет
Вы пользуетесь общественным транспортом? Вероятно, вы расплачивались за проезд и получали билет с номером. Счастливым билетом называют...

Задача 2. «Счастливый билет»
Задание: На вход программе подаются номер шестизначный билета. Выводом программы должна являться фраза «счастливый» или «несчастливый» по...

Задача "Счастливый билет"
Вася считает билет счастливым если в его номере не более одной не нулевой цифры. Так 000100, 040000, 5 — счастливые, а 000012, 003001 и...

Счастливый билет
Для проезда в общественном транспорте пассажиры покупают билет. Транспортная компания запустила акцию, по которой каждый пассажир, имеющий...

Твой счастливый билет
Представьте, что вы решили поучаствовать в лотерее и сразу хотите найти выигрышный билет. К счастью, вы обладаете секретным знанием — вам...


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

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

Новые блоги и статьи
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru