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

Между числами нужно расставить знаки + и × так, чтобы в результате получить нечетное число

09.03.2023, 08:56. Показов 8428. Ответов 33

Студворк — интернет-сервис помощи студентам
Сдать решение задачи B-Задача 2
Ограничение времени: 1 с
Ограничение реального времени: 5 с
Ограничение памяти: 64M
Знаки
Сидя на занятиях математики Азамат придумал себе следующую задачу дано число n и последовательность ai из n целых чисел, между числами нужно расставить знаки + и × так, чтобы в результате получить нечетное число. Например между числами 3, 5, 4 можно расставить знаки следующим образом: 3 × 5 + 4 = 19. Помогите Азамату написать программу для решения данной задачи.

Формат входных данных
В первой строке содержится единственное число n (2 ≤ n ≤ 10^5 ).

Во второй строке содержится n целых чисел ai, разделённых пробелами (−10^9 ≤ ai ≤ 10^9 ).

Гарантируется, что решение существует.

Формат результата
В одной строке выведите n − 1 символ + или ×, в результате применения которых получается нечётный результат. (Для вывода используйте соответственно знаки «+» (ASCII код—43) и «x» (ASCII код—120), без кавычек).


Примеры
Входные данные
3
5 7 2
Результат работы
x+
Входные данные
2
4 -5
Результат работы
+

Добавлено через 1 минуту
вот решение мое, оно было не принято
Python
1
2
3
4
5
6
7
8
9
10
n = int(input())
a = list(map(int, input().split()))
 
if 0 in a:
    print("x" * (n-1))
else:
    if any(num % 2 != 0 for num in a):
        print("x" * (n-2) + "+")
    else:
        print("x" * (n-1))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2023, 08:56
Ответы с готовыми решениями:

Расставить знаки между числами от 1 до 9, чтобы получить заданное число
Доброе время суток. Помогите разобраться с задачей, пожалуйста. Нужно расставить знаки "+", "-" между числами от 1...

Между заданными числами расставить знаки сложения и вычитания так, чтобы в итоге получилось указанное число
Простая задачка из школьной олимпиады (задача на асмп №366). У меня превышает лимит времени. Если есть другие пути поделитесь пж ...

Расставить знаки операций между тремя числами так, чтобы результат вычисления выражения был минимальным
Вы наверняка уже знаете, что Алексей — серьёзный математик, и он любит решать серьёзные задачи. Вот ещё одна из этих задач. Даны три...

33
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
09.03.2023, 09:07
BeastBoy2209, если сумма нечетная, то ответ все '+'.
что будет если сумма четная? при этом нам гарантируется, что ответ есть.
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
09.03.2023, 09:38
eaa, раз гарантируется результат, то значит как минимум одно нечетное число есть. Перемножаем все остальные и прибавляем это нечетное число
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
09.03.2023, 09:41
тут еще можно проверить, произведение на нечетность. тогда вывести все 'x'.
0
0 / 0 / 0
Регистрация: 09.03.2023
Сообщений: 15
09.03.2023, 09:50  [ТС]
можете переписать код, ибо я много условий пробовал не одно решение не прошло
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
09.03.2023, 09:54
Python
1
2
3
4
5
6
7
8
9
10
11
12
n = int(input())
a = list(map(int, input().split()))
if sum(a) % 2 == 1:
    print('+' * (n - 1))
else:
    for i, v in enumerate(a):
        if v % 2 == 1:
            break
    if i == 0 or i == n:
        print('*' * (i - 1) + '+' + '*' * (n - i - 2))
    else:
        print('*' * (i - 1) + '++' + '*' * (n - i - 2))
Если робот проверяет тупо на совпадение ответа, то и этот код не пройдёт.
0
0 / 0 / 0
Регистрация: 09.03.2023
Сообщений: 15
09.03.2023, 10:06  [ТС]
проверило написанно неправильный ответ
ошибок в коде:1

Добавлено через 2 минуты
код в ответе проверяет сразу все нужные условия, по примерам ответ выводится правильно но сайт не защитывает его как верное решение. Есть какие-нибудь идеи
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
09.03.2023, 10:44
Python
1
2
3
4
5
6
7
8
9
n = int(input())
a =  list(map(int, input().split()))
res = chr(43) * (n - 1)
if not sum(a)%2:
    for i, v in enumerate(a):
        if v % 2 == 1:
            break
    res = res[:i] + chr(120) + res[i+1:]
print(res)
2
0 / 0 / 0
Регистрация: 09.03.2023
Сообщений: 15
09.03.2023, 11:01  [ТС]
что то новое, тест 3 не пройден. До этого писала что тест 1 не пройден

Добавлено через 12 минут
Gdez, пожалуйста помоги, я уже не знаю что делать
0
3 / 3 / 0
Регистрация: 28.02.2018
Сообщений: 15
09.03.2023, 11:14
Как мне кажется, можно сделать так:
Расставить сначала все +. Затем, если сумма чётная, то выбираешь два нечётных числа, и заменяешь плюс на произведение. Например, вместо 3 + 5 = 8 будет 3 * 5 = 15
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
09.03.2023, 11:16
BeastBoy2209, решение Gdez правильное на 200%.
Разбирайся с тестирующей системой.
Приложи скрины с условием и результатами теста
0
0 / 0 / 0
Регистрация: 09.03.2023
Сообщений: 15
09.03.2023, 11:21  [ТС]
в этом и дело, что не написано какие тесты проверяет тест. программа. Просто выдает какой тест он не прошел. Я думаю что тест 1 и 2 нужны для проверки результатов из примеров с входными данными. Остальные тесты может быть проверяют дополнительные условия для выполнения задачи типо кол-во четных и нечетных чисел, наличие или отсутствие нулей и тп. Во только я не знаю что еще можно добавить
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
09.03.2023, 11:22
Larry_202, а если нечетные числа стоят не рядом?
0
0 / 0 / 0
Регистрация: 09.03.2023
Сообщений: 15
09.03.2023, 11:22  [ТС]
я пробовал несколько вариантов, они все не проходят тест 3
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
n = int(input())
a = list(map(int, input().split()))
res = chr(43) * (n - 1)
 
# Проверка на наличие нечётных чисел в последовательности
if all(i % 2 == 0 for i in a):
    print('×' * (n - 1))
    exit()
 
# Проверка на нечётность суммы всех чисел
if sum(a) % 2 == 0:
    for i, v in enumerate(a):
        if v % 2 == 1:
            res = res[:i] + chr(120) + res[i+1:]
            break
else:
    res = res.replace('+', 'x', 1)
 
print(res)
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
n = int(input())
a = list(map(int, input().split()))
 
# Проверка наличия нечетных чисел
odd_present = any(num % 2 == 1 for num in a)
if not odd_present:
    print("There is no odd number in the input.")
    exit()
 
# Проверка наличия четных чисел
even_present = any(num % 2 == 0 for num in a)
if not even_present:
    print("There is no even number in the input.")
    exit()
 
# Рассчет ответа
res = "+" * (n - 1)
if not sum(a) % 2:
    for i, v in enumerate(a):
        if v % 2 == 1:
            res = res[:i] + "x" + res[i+1:]
            break
 
print(res)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
n = int(input())
a =  list(map(int, input().split()))
 
if all(x%2 == 1 for x in a):
    print("+".join(["+"]*(n-1)))
else:
    res = chr(43) * (n - 1)
    if not sum(a)%2:
        for i, v in enumerate(a):
            if v % 2 == 1:
                break
        res = res[:i] + chr(120) + res[i+1:]
    print(res)
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
09.03.2023, 11:39
Цитата Сообщение от BeastBoy2209 Посмотреть сообщение
Я думаю что
Думать уже поздно, за тебя это уже сделал Gdez, а сейчас надо делать, что говорят.
Цитата Сообщение от Red white socks Посмотреть сообщение
Приложи скрины с условием и результатами теста
0
0 / 0 / 0
Регистрация: 09.03.2023
Сообщений: 15
09.03.2023, 11:50  [ТС]

все больше ничего не дает, все что было в задаче вставил в сам вопрос
Red white socks
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
09.03.2023, 11:55
BeastBoy2209, ну что ж. Нет так нет. Продолжай партизанить. Я попытался
0
0 / 0 / 0
Регистрация: 09.03.2023
Сообщений: 15
09.03.2023, 11:58  [ТС]
Red white socks, я просто не понимаю что еще требуется
0
0 / 0 / 0
Регистрация: 09.03.2023
Сообщений: 15
09.03.2023, 12:00  [ТС]





Red white socks, вот все что возможно показать
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
09.03.2023, 12:14
BeastBoy2209, какой из тестов соответствует коду Gdez?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.03.2023, 12:14
Помогаю со студенческими работами здесь

Расставить между числами знаки + и * так, чтобы значение получившегося выражения было равно заданному целому S
Даны N целых чисел X1, X2,...,Xn. Расставить между ними + и * так ,чтобы значение получившегося выражения было равно заданному целому S. ...

Расставить между числами знаки + и - так, чтобы значение получившегося выражения было равно заданному целому S
Даны N целых чисел X1, X2, …, XN. Требуется расставить между ними знаки + и - так, чтобы значение получившегося выражения было равно...

Расставить знаки между цифрами так, чтобы получилось заданное число
Помогите разобраться с алгоритмом. Вот задача: Имеются цифры 1, 2, 3, 4, 5, 6, 7, 8, 9. Необходимо расставить между ними любое...

Расставить между членами последовательности знаки +, -, *, /, так, чтобы получилось заданное число
Помогите решить задачу. Не понимаю как её решить. Дана последовательность из N цифр. Необходимо расставить между ними знаки +, -, *, /,...

Расставить знаки арифметических операций между цифрами числа A, чтобы получить число B
Заданы два целых положительных числа A и B. Расставьте знаки арифметических операций (+, -, *, /) между цифрами числа A, чтобы получить...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru