Окно,ок, но не знаю, я ваш вопрос не очень хорошо поняла
Дана последовательность, состоящая из 10 чисел [7, 3, 10, 9, 8, 4, 1, 6, 2, 5]. Вы умеете за один ход поменять в ней местами два
Waln
Const
a: array of integer = (7, 3, 10, 9, 8, 4, 1, 6, 2, 5);
begin
var n := 0;
var found := false;
repeat
found := false;
for var i := low(a) to High(a) - 1 do
if a[i] > a[i + 1] then begin
swap(a[i], a[i + 1]);
found := true;
n := n + 1;
end;
until not found;
writeln('Swaps = ', n);
end.
Ответ
Swaps = 30
1000*60*50=3000000 символов - байт = 2,9 мегабайт
- Double
- Int64
- Double
- Int32
- Double
- Int32
- Double
- Double
Взято с помощью функции GetType при a = 16. При дробном a не будет выполняться 4 пункт, а другие же изменятся. Тут нужно подробно рассмотреть ситуации. Пусть у нас целочисленная переменная a. Тогда:
- Функция корня (sqrt) всегда возвращает тип double. Почему? Ведь у нас может быть табличное значение? Объясняю: не всегда может выпасть табличное значение, поэтому наше число типа integer расширяется до double (при этом не теряя никаких знаков, а в случае, если бы мы сужали с double к integer - у нас бы была потеря знаков) и нам уже неважно, получили мы дробное или целое - всё сохранится в переменной типа double. А ещё мы делим на целочисленное и у нас точно вся дробь превращается в тип double.
- Здесь уже будет зависеть от того, какая переменная a. Если она целочисленная, то она может быть очень большой, поэтому результат расширяется до BigInteger или же Int64. Если рациональная, дробная, то double.
- Здесь всегда будет тип double, поскольку в функции Abs (взятие модуля) мы от числа отнимаем рациональное и расширяем переменную до double.
- Здесь мы не можем принимать рациональные, дробные и так далее - только целочисленные. Соответственно, ответ будет типа integer.
- Как бы странно не прозвучало, но функция int, возвращающая целую часть выведет тип double, но ответ будет целочисленным. "Смех" здесь в том, что эта функция принимает любые числа, а не только вещественные.
- В отличие от предыдущего примера функция trunc принимает лишь вещественные числа, поэтому типом будет int.
- Frac возвратит лишь дробную часть, поэтому не стоит удивляться, почему оно возвращает double.
- Думаю, тут даже комментировать ничего не нужно. Попробуйте в любом калькуляторе ввести sin(какой-то_угол) и Вы всё поймёте.
N=int(input())
h=n//3600 #кол-во часов
n=n%3600 #остаток после вычета часов
m=n//60 #кол-во минут
s=n%60 #остаток после вычета минут - секунды
h=str(h)
m=str(m)
if len(m)==1:
m='0'+m #отступ 4 пробела от начала строки
s=str(s)
if len(s)==1:
s='0'+s #отступ 4 пробела от начала строки
print(h+':'+m+':'+s)