Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите написать пару задач на C++

74K
08 ноября 2011 года
JeRR
6 / / 24.10.2011
Всем доброго времени суток!
Вообщем мне надо завтра сдать 2 программы, которые я не понимаю как делать:( Может поможет кто написать плиз?
1) Цена одного часа работы перевозчика грузов зависит от длительности работы. Написать программу, которая принимает количество требуемых для работы часов и вычисляет стоимость данной услуги. Использовать ле-сенку if-else-if.
2) Проездной билет назовем счастливым, если его шести-значный номер обладает следующим свойством: сумма первых трех цифр в нем равна сумме последних трех. Написать программу, которая принимает с клавиатуры номер билета и сообщает, счастливый он или нет. Ис-пользовать оператор ?:. Предварительно проверить, яв-ляется ли введенный номер шестизначным, и, если нет, то сообщить об ошибке.
Сори что в 1 теме 2 задачи....
271
08 ноября 2011 года
MrXaK
721 / / 31.12.2002
2:
[code=c++]
bool sch(int n) {
bool ret = false;
int r[6];
for (int q=n,i=-1, s1=0, s2=0; (q>0) ? true : false;r[++i]=q%10,q=q/10,s1+=(i<3 ? r : 0),s2+=(i>=3 ? r : 0),ret=(0==q && 5==i && s1==s2 ? true : false));
return ret;
}
[/code]
функция sch получает число, возвращает true если билет счастливый, false - если не счастливый или номер не 6изначный...
87
09 ноября 2011 года
Kogrom
2.7K / / 02.02.2008
Решил придумать свой вариант функции от Mr.Hacker-а.

[CODE=c++]bool sch(int n) {
int s1 = n % 1000, s2 = n / 1000;
return s1 == s2 && s1 > 99;
}[/CODE]
87
09 ноября 2011 года
Kogrom
2.7K / / 02.02.2008
Да, не учел условие про ?: и предварительную проверку. Тогда так:

[CODE=c++]bool sch(int n) {
return n % 1000 > 99 ? n % 1000 == n / 1000 : false;
}[/CODE]
271
09 ноября 2011 года
MrXaK
721 / / 31.12.2002
2Kogrom: у тебя неправильно)) ты же просто выделяешь первые 3 и последние 3 цифры и их сравниваешь)) а надо сумму цифр)
87
09 ноября 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: Mr.Hacker
2Kogrom: у тебя неправильно)) ты же просто выделяешь первые 3 и последние 3 цифры и их сравниваешь)) а надо сумму цифр)



Ну тогда так:

[CODE=c++]bool sch(int n) {
int i = 0, s = 0;
for (; n; s+=(i<3 ? n%10 : 0), s-=(i>=3 ? n%10 : 0), n/=10, ++i);
return !(i - 6 || s);
}[/CODE]

271
10 ноября 2011 года
MrXaK
721 / / 31.12.2002
а вот это шикарно))) я чё-то так даже не подумал))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог