Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) когда совпадут минуты и часы - C#
Формулировка задачи:
Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) до того момента когда часовая и минутная стелка совпадут. Т е когда угол часовой стрелки и минутной будут равны. Вот отрывок задачи но я не могу полностью разобраться как именно нужно нааписать код.
Почему минуту увеличивает только один раз?
private void button1_Click(object sender, EventArgs e)
{
int gmin,gchas;
// время от куда мы стартуем
int chas = Convert.ToInt32(textBox1.Text); //Часы которые вводим
int min = Convert.ToInt32(textBox2.Text); // минуты
gchas = chas * 30; // определяем угол для часовой стрелки
gmin = min * 6; // определяем угол для минутной стрелки
// выбрал цикл с постусловием
do
{
if (min == 60) min = 1; // проверка на то если минуты дошли до 60 то ставим в начало т е с 1 минты
min++;
gmin = gmin++; // при каждом увеличении минуты увеличииваем угол на 6 градусов
gchas =gchas +6; //увеличение на 1 градус часовой стрелки
}
while (gmin == gchas); // если углы равны то
label3.Text = Convert.ToString(min);// выводим сколько минут прошло до того как совпали часовая стрелка и минутная .Решение задачи: «Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) когда совпадут минуты и часы»
textual
Листинг программы
static void Main(string[] args)
{
int i=0,k=0,proxodpo0=0,vremyadlyadagona=0;
int vremyM, vremy4,na4polMstrelki;
Console.WriteLine("сейчас часов: ");
vremy4=Convert.ToInt32(Console.ReadLine());
Console.WriteLine("сейчас минут: ");
vremyM = Convert.ToInt32(Console.ReadLine());
na4polMstrelki = vremyM;
Console.WriteLine("Сейчас " + vremy4 + " часов " + vremyM + " минут");
if (vremy4 >= 12)
vremy4 = vremy4 - 12;
double drob = (vremyM / 12);
int brob1 = Convert.ToInt32(Math.Floor(drob)) * 6;
int ugolM, ugol4;
ugolM = vremyM*6;
ugol4 = (vremy4 * 30) + brob1;
Console.WriteLine("Часовая стрелка сейчас имеет угол " + ugol4);
Console.WriteLine("Минутная стрелка сейчас имеет угол " + ugolM);
while (ugolM != ugol4)
{
vremyM=vremyM+1;
if (vremyM >= 60)
{
vremyM = 0;
vremy4++;
proxodpo0++;
}
i ++;
ugolM = vremyM * 6;
}
vremyadlyadagona = i;
i = i + proxodpo0;
i = i + (na4polMstrelki % 12);
double drob4 = i / 12;
int y = Convert.ToInt32(Math.Floor(drob4));
ugol4 = ugol4 +(y*6);
while (ugolM != ugol4)
{
vremyM = vremyM + 1;
k++;
ugolM = vremyM * 6;
}
int sovpad = vremyadlyadagona + k + proxodpo0;
Console.WriteLine("Совпадение стрелок будет через " + sovpad + " минуты");
Console.ReadKey();
}