Вопрос № 161062: Доюрое время суток! Подскажите как решить задачу: дано натуралное число n определить какая цифра в нём расположена левее: максимальная или минимальная?...
Вопрос № 161095: Здравия желаю Уважаемые Эксперты !! Я начинающий кодер в С++, и хотелось бы для начала разобраться с данной задачей: "Даны целые числа M и N (0<M<=12, 0<=N<=60), указывающие момент времени: «M часов, N минут». Определить на...
Вопрос № 161.062
Доюрое время суток! Подскажите как решить задачу: дано натуралное число n определить какая цифра в нём расположена левее: максимальная или минимальная?
Отправлен: 21.02.2009, 12:28
Вопрос задал: XaciH (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Evgenijm
Здравствуйте, XaciH!
Хорошая задачка. Выглядит заковыристо, а решается очень легко. Самая правая цифра числа = Num%10. Чтобы убрать самую последнюю цифру надо сделать Num/=10. Проходим все цифры слева направо и обновляем свои индексы. Осталось вставить это в код функции и прописать вывод.
//Нам нужны: цифры int Min, Max;
//Индексы цифр (справа) int iMin, iMax;
//Текущий индекс int CurIndex;
//Устанавливаем все на самую правую цифру CurIndex = iMin = iMax =
0; Min = Max = Num%10;
while((Num/=10)!=0)//Еще остались циферки { int Z=Num%10; CurIndex++;
Ответ отправил: Evgenijm (статус: 3-й класс)
Ответ отправлен: 21.02.2009, 13:21
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 244171 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 161.095
Здравия желаю Уважаемые Эксперты !! Я начинающий кодер в С++, и хотелось бы для начала разобраться с данной задачей:
"Даны целые числа M и N (0<M<=12, 0<=N<=60), указывающие момент времени: «M часов, N минут». Определить наименьшее время (число полных минут), которое должно пройти до того момента, когда часовая и минутная стрелки совпадут"
Если я Вас не сильно утруждаю, не могли бы вы написать исходный код для данной программы? Заранее Благодарю.
Отвечает: Micren
Здравствуйте, Ковальчук Константин Константинович! Эта задача скорее не на программирование, а на математические способности. Фактически сводится к нахождению следующего решения: t=(60*M-11*N+720*i)/11, где i=0,1,2,3... Вот пример программы:
unsigned int InputUInt(const wchar_t* const msg,unsigned int maxvalue) { while(true) { unsigned int res; wcout<<msg<<L"(0.."<<maxvalue<<L"):"; wcin>>res; if(wcin.fail()) { wcout<<L"Неверный ввод"<<endl; wcin.clear(); wcin.ignore(numeric_limits<streamsize>::ma
x(),L'
'); } else { wcin.ignore(numeric_limits<streamsize>::max(),L'
'); if(res>maxvalue) { wcout<<L"Неверный диапазон введенного значения"<<endl; wcout<<L"Допускается от 0 до "<<maxvalue<<endl; } else return res; } } }
int main() { locale::global(locale("rus_rus.866")); int M=InputUInt(L"Введите количество часов",11), N=InputUInt(L"Введите количество минут",59); int tmp=60*M-11*N; wcout<<L"Время до
совпадения минутной и часовой стрелок(ближайшие 10 событий):"<<endl; int count=10; unsigned int i=0; while(count) { int res=(720*(i++)+tmp)/11; if(res>0) { wcout<<res<<L"(мин)"<<endl; count--; } } system("PAUSE"); return 0; }
А вот пример ее работы:
Код:
Введите количество часов(0..11):9 Введите количество минут(0..59):35 Время до совпадения минутной и часовой стрелок(ближайшие 10 событий): 14(мин) 79(мин) 145(мин) 210(мин) 275(мин) 341(мин) 406(мин) 472(мин) 537(мин) 603(мин)
Ответ отправил: Micren (статус: Студент)
Ответ отправлен: 21.02.2009, 22:56
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 244201 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.