Задачи на python

I-Mixail

Создатель
Регистрация
13 Янв 2014
Сообщения
31
Реакции
18
Всем привет! Прошу помощи в решении интересной задачи на python:
В некоторой школе решили набрать три новых математических класса и оборудовать кабинеты для них новыми партами. За каждой партой может сидеть два учащихся. Известно количество учащихся в каждом из трех классов. Выведите наименьшее число парт, которое нужно приобрести для них. Программа получает на вход три натуральных числа: количество учащихся в каждом из трех классов.
Имеются вот такие данные учеников:
20,21,22
26,20,16
25,21,23 - заметьте, учеников нечетное количество, поэтому +1 парта
17,19,18 - аналогично
Вот такой должен быть ответ:
Без функций и условий!
Я сделал так:
Код:
a = int(input())
b = int(input())
c = int(input())
print(((a + b + c) // 2)  + ((a + b + c) % 2))

Взято тут: _pythontutor.ru/lessons/inout_and_arithmetic_operations/problems/desks/
 

artemnv

Создатель
Регистрация
10 Окт 2015
Сообщения
24
Реакции
8
мне кажется можно проще и понятнее)
a = int(input())
b = int(input())
c = int(input())
print((a+1)//2 + (b+1)//2 + (c+1)//2)
 

eretic

Создатель
Регистрация
22 Апр 2012
Сообщения
10
Реакции
0
как сравнить 2 индексированых массива на предмет совпадения значений, при котором элемент0 первого массива сравнивается с элемнтом0 второго массива и т.д. А затем указывается количество совпадений?
 

Hutton

Постоялец
Регистрация
28 Янв 2016
Сообщения
50
Реакции
34
Всем привет! Прошу помощи в решении интересной задачи на python:

Имеются вот такие данные учеников:

Вот такой должен быть ответ:

Без функций и условий!
Я сделал так:
Код:
a = int(input())
b = int(input())
c = int(input())
print(((a + b + c) // 2)  + ((a + b + c) % 2))

Взято тут: _pythontutor.ru/lessons/inout_and_arithmetic_operations/problems/desks/

Код:
print(((a + b + c) // 2)  + ((a + b + c) % 2))
Не верное решение. Когда нечетное кол-во учеников в двух или трех классах, теряется парта и кому-то прийдеться сидеть на полу.

Или так :
Код:
print(a // 2 + a % 2 + b // 2 + b % 2 + c // 2 + c % 2)
или как Для просмотра ссылки Войди или Зарегистрируйся показал:
Код:
print((a+1)//2 + (b+1)//2 + (c+1)//2)
 

suphler

Создатель
Регистрация
2 Мар 2016
Сообщения
37
Реакции
9
Красиво, не спорю.
Но, если это учебная задачка для начинающего, то не стоит так сразу ломать ему мозг и вызывать подозрения у препода.
Можно написать по старинке, просто и наглядно:
Код:
for i in range(len(x)):
  if x[i] == y[i]: counter++
 

xcoder007

Постоялец
Регистрация
7 Фев 2016
Сообщения
65
Реакции
27
Код:
var
  a,b,c:integer;
begin
  readln(a,b,c);
  writeln(round(a/2+0.1)+round(b/2+0.1)+round(c/2+0.1));
end.

или
Код:
writeln((a + 1) div 2 + (b + 1) div 2 + (c + 1) div 2);
 

santaatnas

Создатель
Регистрация
14 Янв 2016
Сообщения
16
Реакции
2
Код:
var
  a,b,c:integer;
begin
  readln(a,b,c);
  writeln(round(a/2+0.1)+round(b/2+0.1)+round(c/2+0.1));
end.

или
Код:
writeln((a + 1) div 2 + (b + 1) div 2 + (c + 1) div 2);
а при чем здесь var? здесь речь о питоне идет, у него динамическая типизация...
 

qwer75

Гуру форума
Регистрация
15 Июл 2009
Сообщения
106
Реакции
62
Код:
a = int(input())
b = int(input())
c = int(input())
print(a // 2 + a % 2 + b // 2 + b % 2 + c // 2 + c % 2)
 
Сверху