Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/190: Рейтинг темы: голосов - 190, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 20.12.2018
Сообщений: 7

Найти наименьшее число парт, которое нужно приобрести для 3 классов

20.12.2018, 08:33. Показов 35412. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задачка, не понимаю почему именно так
Парты

В некоторой школе решили набрать три новых математических класса и оборудовать кабинеты для них новыми партами. За каждой партой может сидеть два учащихся. Известно количество учащихся в каждом из трех классов. Выведите наименьшее число парт, которое нужно приобрести для них. Каждый класс сидит в своем кабинете.

Формат входных данных

Программа получает на вход три целых неотрицательных числа: количество учащихся в каждом из трех классов (числа не превышают 1000).


Формат выходных данных

Выведите одно целое число - ответ на задачу.

Sample Input 1:
20
21
22
Sample Output 1:
32

Sample Input 2:
16
18
20
Sample Output 2:

27



Вот мое решение:

C++
1
2
3
4
5
6
7
8
9
10
11
12
int main() {
    
  int y, x, z, c, b, n, m;
    cin >> y, x, z, c, b, n, m;
    
     c = (y / 2) + (y % 2);
     b = (x / 2) + (x % 2);
     n = (z / 2) + (z % 2);
    m = c + b+ n;
    cout << m;
  return 0;
}
Если в переменные y, x, z. Поставить нужные числа из задание ( да и любые другие ) то в программе компилируется все правильно.

Ко многим решениям ( не правильным пишут ) - В вашем решении предполагается, что учащиеся из разных классов могут сидеть за одной партой. Но вы не можете Петю из класса 1 посадить за одну парту с Васей из класса 2(если и в первом, и во втором классе нужна парта, за которой сидит 1 человек, то ваша программа выдаст, что этим людям хватит одной парты на двоих). Подумайте, как переписать вашу программу, чтобы за одной партой могли сидеть учащиеся только одного класса.

Но ведь в моем все классы считаются отдельно.


Но на сайте решение задания такое.

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
int main() {
  int a, b, c;
  cin >> a;
  cin >> b;
  cin >> c;
  cout << ((a + 1) / 2) + ((b + 1) / 2) + ((c + 1) / 2);
  return 0;
}
Объясните пожалуйста почему именно так.

Добавлено через 7 минут
Только тему сделал и вроде допер, я так понимаю проблема в вводе.
Нужно было сделать
C++
1
cin >> y >> z >> c;
А не через запятую.
Но в чем великая разница ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.12.2018, 08:33
Ответы с готовыми решениями:

Выведите наименьшее число парт, которое нужно приобрести для классов
В некоторой школе решили набрать три новых математических класса и оборудовать кабинеты для них новыми партами. За каждой партой может...

Для данного числа m найти наименьшее положительное целое число с суммой цифр m и которое делится m
Для данного числа m найти наименьшие положительное целое число с суммой цифр m, которое делится m. ВВОД: Во входном файле записано m ...

Найти наименьшее число, число M(N<M<2N) которое делятся на сумму цифр числа N(без остатка).
Помогите решить задачку.:) Дано натуральное число N. Найти наименьшее число, число M(N&lt;M&lt;2N) которое делятся на сумму цифр числа...

8
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
20.12.2018, 08:33
Надеюсь понятно, как округляется
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a;
cin >> b;
cin >> c;
cout << a/2 << " " << b/2 << " " << c/2<< endl;
cout << ((a + 1) / 2) + ((b + 1) / 2) + ((c + 1) / 2);
return 0;
}
1
0 / 0 / 0
Регистрация: 20.12.2018
Сообщений: 7
20.12.2018, 08:39  [ТС]
Как округляется понятно, непонятно почему решать именно так нужно, мой код ведь выдает тот же самый ответ.
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
20.12.2018, 08:44
И ваш вариант убирая все лишнее
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main() {
int a,b,c;
cin >> a >> b >> c;
a = (a / 2) + (a % 2);
b = (b / 2) + (b % 2);
c = (c / 2) + (c % 2);
cout << a <<" "<< b<< " "<< c<< endl;
cout <<a+b+c;
return 0;
}
1
0 / 0 / 0
Регистрация: 20.12.2018
Сообщений: 7
20.12.2018, 08:51  [ТС]
Я так понимаю ошибка - я ввел (( cin >> a, b, c; ) условно ) как один класс. А при вводе cin >> a >> b >> c; Программа распознает это как разные ?
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
20.12.2018, 08:54
разница только в количестве операции в вашем 3, во втором 2 (+ и /) ну и потоковый ввод синтаксис знать надо
0
0 / 0 / 0
Регистрация: 20.12.2018
Сообщений: 7
20.12.2018, 09:01  [ТС]
Почему если поменять
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main() {
int a,b,c;
[B]cin >> a >> b >> c;[/B]
a = (a / 2) + (a % 2);
b = (b / 2) + (b % 2);
c = (c / 2) + (c % 2);
cout << a <<" "<< b<< " "<< c<< endl;
cout <<a+b+c;
return 0;
}
На

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main() {
int a,b,c;
[B]cin >> a, b, c;[/B]
a = (a / 2) + (a % 2);
b = (b / 2) + (b % 2);
c = (c / 2) + (c % 2);
cout << a <<" "<< b<< " "<< c<< endl;
cout <<a+b+c;
return 0;
}
То все в корне меняется ?
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
20.12.2018, 09:57
Цитата Сообщение от Anavi Посмотреть сообщение
cin >> a >> b >> c;
это трехкратный вызов метода
C++
1
istream& operator>>(int&);
C++
1
((cin.operator>>(a)).operator>>(b)).operator>>(c);
или, грубо говоря, если расписать через ;
C++
1
cin>>a;cin>>b;cin>>c;
а
Цитата Сообщение от Anavi Посмотреть сообщение
cin >> a, b, c;
это просто
C++
1
(cin.operator>>(a)), b, c;
или
C++
1
2
3
cin>>a;
b;
c;
1
0 / 0 / 0
Регистрация: 20.12.2018
Сообщений: 7
20.12.2018, 10:11  [ТС]
Всем спасибо за ответы. Будем развиваться дальше )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.12.2018, 10:11
Помогаю со студенческими работами здесь

Дано натуральное число N. Найти наименьшее число М (N< M< 2N), которое делится на сумму цифр числа N (без оста
Дано натуральное число N. Найти наименьшее число М (N&lt; M&lt; 2N), которое делится на сумму цифр числа N (без остатка). Если такого числа...

Найти наименьшее число m, которое делится на a и b
Добрый день, не могли бы вы помочь мне с решением задачи. задача такова: По данным двум числам 1≤a,b≤2⋅10^9 найдите...

Найти наименьшее число, которое удовлетворяет условию
Дано вещественное число a. Найти такое наименьшее n, что 1+1/2+1/3+…+1/n &gt;a. Пункт 3.4 Правил: Спокойствие и хладнокровие помогут вам...

Найти наименьшее число массива, которое не входит в другой массив
Здравствуйте, требуется помощь с задачей: &quot;Даны два массива. Найти наименьшее среди тех чисел первого массива, которые не входят во...

Найти наименьшее число, которое делится на сумму цифр числа N
1)дано четырехзначное число.Если разряды образуют возрастающую последовательность, то разряд тысяч умножить на разряд единиц и разделить на...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru