Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - разделить число примерно поровну.

Ответить
Настройки темы
C/C++ - разделить число примерно поровну.

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте.
Сразу начну с примера. Есть число 80. его нужно разделить на заданное n частей. Числа должны быть кратны 10. Например число 80 разбить на 3 части. первая часть 30, вторая часть 30, третья часть 20. То есть примерно поровну.
Или то же число 80 разбить на 5 частей. 1-я 20, 2-я 20, 3-я 20, 4-я 10, 5-я 10.
Надеюсь смысл понятен.
И нужно реализовать на C++. Дано число которое нужно разбить, дано количество разбиений n, и записать эти все части в массив.
Заранее спасибо!

Отправлено: 08:59, 23-05-2012

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Дано число C, частей n
ti = ]C/n[ с округлением до целых десятков
и так в каждой итерации цикла
Все остальное самостоятельно.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 09:06, 23-05-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


Цитата FreeDDos:
То есть примерно поровну. »
Не знаю где вы учитесь но 10 даже примерно не равно 20 . Есть некоторые понятия округления и сравнения по порядку величины, но мне кажется, что здесь они просто не нужны.

Если разделить 80 на 3 то мы получим 26,66. Потом из полученного выделить часть, кратную 10. Мы получим 20. Затем мы просто умножим 20 на 3 и получим 60. И из 80 вычтем 60 и получим 10. И в принципе сработает ваше первое разбиение: 20,20,20,10.

Если пойти тем же путём и 80 разделить на 5 будет 16. Выделяем целую часть, получаем 10. Умножаем на 5 получаем 50. Из 80 вычитаем 50 получаем 30. И части строятся криво

10,10,10,10,10,30

Может стоит потом как то поработать с остатком. К примеру если он больше первых частей то нужно его как-то поделить и перебросить на первые слагаемые.

Цитата lxa85:
ti = ]C/n[ с округлением до целых десятков »
Если смотреть в мой пример то округление до целых десятков приведёт к неверному результату: 26.6 --> 30 , 26.6 --> 30, 26.6 --> 30, и уже мы перевалили за 80.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 09:11, 23-05-2012 | #3


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Можно по подробней а то не могу разобраться.
Это нужно цикл сделать такой чтобы считал с округлением кратным 10?

Отправлено: 09:19, 23-05-2012 | #4


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата Tonny_Bennet:
Если смотреть в мой пример то округление до целых десятков приведёт к неверному результату: 26.6 --> 30 , 26.6 --> 30, 26.6 --> 30, и уже мы перевалили за 80. »
Цитата lxa85:
и так в каждой итерации цикла »
Я прикинул вариант деления 80 на 7, поэтому в каждой итерации.
Цитата FreeDDos:
Можно по подробней а то не могу разобраться. »
Все уже разобрано, текст выше.
Будут наработки приходите. Вся суть алгоритма расписана. "Жевать" не имеет смысла.
Цитата FreeDDos:
Это нужно цикл сделать такой чтобы считал с округлением кратным 10? »
Да не, можно прям так, без циклов, без заморочек, к чему огород городить?
(думай своей головой, а не нашей)

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 09:35, 23-05-2012 | #5


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


А что если такую систему:
80 на 3 части
80/3 = 26... ->30 //округлить до 10.
80-30 = 50
50/3 = 16... ->20
50-20 = 30 // Останавливаемся потому что разбили на три части и выходит что 30 20 30 части.

80 на 5 частей.
80/5 = 16... -> 20
80-20 = 60
60/5 = 12... -> 20
60-20 = 40
40/5 = 8... -> 10
40-10 = 30
30/5 = 5... -> 10
30-10 = 20 //Останавливаемся потому что разбили на пять частей и вышло 20 20 10 10 20

Отправлено: 09:40, 23-05-2012 | #6


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата FreeDDos:
80 на 3 части -> 30 20 30
80 / 5 -> 20 20 10 10 20
»
Сами то как думаете? Под условия решения подходит или нет?
Или для верность надо еще попробовать на 7 разделить?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 09:45, 23-05-2012 | #7


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


попробовал...
получается...
80/7 = 11... -> 20
80-20=60
60/7 = 8... -> 10
60-10=50
50/7= 7... ->10
50-10=40
40/7=5... -> 10
40-10=30
30/7= 4... -> 10
30-10 = 20
20/7= 2... ->10
20-10 = 10 // останавливаемся и получаем 20 10 10 10 10 10 10

Отправлено: 09:51, 23-05-2012 | #8


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата FreeDDos:
попробовал...
получается... »
тогда вперед и с песней. Отчет о сданной лабе приветствуется.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 09:56, 23-05-2012 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - разделить число примерно поровну.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Route/Bridge - Разделение интернета поровну amfetrion Сетевые технологии 1 21-04-2011 10:48
Медиа - WMP прожирает процессор примерно 70% achyo Microsoft Windows 7 0 08-03-2010 12:41
[решено] Системник примерно за 700$ misha121 Выбор отдельных компонентов компьютера и конфигурации в целом 40 11-03-2009 23:52
[решено] Получаеться примерно так... Trix Выбор отдельных компонентов компьютера и конфигурации в целом 7 20-08-2008 17:31
конфиг примерно на $1300. extensa Выбор отдельных компонентов компьютера и конфигурации в целом 14 27-07-2008 11:44




 
Переход