Консультация № 161095
21.02.2009, 21:39
0.00 руб.
0 1 1
Здравия желаю Уважаемые Эксперты !!
Я начинающий кодер в С++, и хотелось бы для начала разобраться с данной задачей:

"Даны целые числа M и N (0<M<=12, 0<=N<=60), указывающие момент времени: «M часов, N минут». Определить наименьшее время (число полных минут), которое должно пройти до того момента, когда часовая и минутная стрелки совпадут"

Если я Вас не сильно утруждаю, не могли бы вы написать исходный код для данной программы?
Заранее Благодарю.

Обсуждение

Неизвестный
21.02.2009, 22:56
общий
это ответ
Здравствуйте, Ковальчук Константин Константинович!
Эта задача скорее не на программирование, а на математические способности. Фактически сводится к нахождению следующего решения:
t=(60*M-11*N+720*i)/11, где i=0,1,2,3...
Вот пример программы:
Код:

#include <locale>
#include <limits>
#include <iostream>

using namespace std;

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>::max(),L'\n');
}
else
{
wcin.ignore(numeric_limits<streamsize>::max(),L'\n');
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(мин)
Форма ответа