221. На¬пи¬ши¬те про¬грам¬му для ре¬ше¬ния сле¬ду-ю¬щей за¬да¬чи. Ка¬ме¬ра на¬блю¬де¬ния ре¬ги¬стри¬ру¬ет в ав¬то¬ма¬ти¬че¬ском ре¬жи¬ме ско¬рость про¬ез¬жа¬ю¬щих мимо неё ав¬то¬мо¬би¬лей, округ¬ляя зна¬че¬ния ско¬ро-сти до целых чисел. Не¬об¬хо¬ди¬мо опре¬де¬лить мини¬маль¬ную за¬ре¬ги¬стри¬ро¬ван¬ную ско¬рость всех ав¬то¬мо¬би¬лей. Про¬грам¬ма по¬лу¬ча¬ет на вход число про¬ехав¬ших ав¬то¬мо¬би¬лей N (1 =< N =< 30), затем ука¬зы¬ва¬ют¬ся их ско¬ро¬сти. Зна¬че¬ние ско¬ро¬сти не может быть мень¬ше 1 и боль¬ше 300.Про¬грам¬ма долж¬на вы¬ве-сти мини¬маль¬нуюско¬рость.
При¬мер ра¬бо¬ты про¬грам¬мы:
Вход¬ные дан-ные Вы¬ход¬ные дан-ные
4
74
69
63
96 63
По условию:
abc
+ abc
bca
Понятно, что максимальным число будет, если сложение в двух младших разрядах идет через перенос -> получим систему уравнений:
2c = a +16
2b +1 = c + 16
2a + 1 = b
равносильная ей система
2с = a + 16
c = 2b - 15
b = 2a + 1
подставляем третье во второе, получаем первые два уравнения
2с = a + 16
c = 4a - 13 из этих двух уравнений -> 7a = 42 -> a = 6 -> из третьего уравнения b = 13
13 = D(16), из первого уравнения с = 22/2 = 11(10) = B(16)
-> abc(16) = 6DB(16) = 1755(10), DB6(16) = 3510(10) -> 2abc = bca
Во-вторых, цикл с предусловием(while) выполняется только тогда, когда его условие возвращает ложь. Если условие возвращает правду, цикл завершается. Бывает так, что при попытке первой итерации цикла условие уже возвращает правду. В этом случае цикл не будет выполнен ни разу.
Цикл с предусловием(repeat), наоборот, выполняется, пока условие возвращает правду и завершается ложью. Стоит заметить, что если цикл с предусловием проверяет своё условие перед итерацией, цикл с постусловием делает это после, а это значит, что последний выполнится хотя бы один раз.