Написать программу, которая по заданным k, m и t определяет общее количество времени, которое понадобилось для измерения времени
Требуется отмерить t минут, потратив на это минимальное количество времени. Для этих целей есть двое песочных часов, первые из которых могут отмерять k минут, а вторые - m минут. Песок в этих часах сыпется неравномерно, и поэтому точно время можно определить, только когда песок в часах пересыпается полностью.
Требуется написать программу, которая по заданным k, m и t (все числа натуральные и не превышают 32000) определяет общее количество времени, которое понадобилось для измерения времени (если это возможно).
Например, k=3, m=2 и требуется отмерить t=5 минут. Сначала устанавливаем первые часы, после полного пересыпания песка устанавливаем вторые часы, в итоге отмеряем 5 минут. Если этими же часами нужно отмерить одну минуту, то одновременно ставятся первые и вторые часы, затем, в момент полного пересыпания песка в часах на 2 мин., устанавливается начало отсчета измеряемого времени, в момент полного пересыпания песка в часах на 3 мин. заканчиваем измерение одной минуты. Таким образом, на измерение одной минуты было затрачено 3 минуты.
Формат входных данных:
С клавиатуры вводится три числа k, m, t (1 <= k, m , t <= 32000).
Формат выходных данных:
На экран выводится целое число – время, затраченное на то, чтобы отмерить заданный промежуток. Если отмерить t минут невозможно, то следует напечатать строку «NO» (без кавычек).
CLS INPUT "vv a ", a INPUT "vv b ", b INPUT "vv t ", t IF a < b THEN SWAP a, b FOR i = 0 TO t + a FOR j = 0 TO t + a IF i * a + j * b = t THEN rez = i * a + j * b: f = 1 NEXT NEXT FOR i = 0 TO t + a FOR j = 0 TO t + a IF f = 0 THEN IF i * a + j * b + (a - b) = t THEN rez = i * a + j * b + a: NEXT NEXT IF rez = 0 THEN PRINT "no" ELSE PRINT rez
автор: кот Бегемот