Марсиане вводят новую систему автомобильных номеров. согласно этой системе, каждый номер
представляет собой некоторую перестановку из n чисел, то есть последовательность, в которой
каждое число от 1 до n встречается ровно один раз.
сложилось так, что марс разделен на две большие области — китс и невис. поэтому необходимо, чтобы по номеру можно было легко определить, из какой области автомобиль.
было решено следующее: жители китса будут использовать лексикографически минимальные n!
2
номеров, а жители невиса — лексикографически максимальные n!
2
номеров. при этом n! четно, а
значит, каждый номер достанется ровно одной из этих областей.
руководители областей захотели выбрать себе особые номера. при этом руководитель китса
решил взять себе максимально возможный номер, а руководитель невиса — минимально возможный. естественно, руководитель китса не может использовать номер, принадлежащий невису, и
наоборот.
вам необходимо руководителям китса и невиса и определить, какие номера они получат.
напоминаем, что перестановка a = (a1, a2, . . , an) считается лексикографически меньше перестановки b = (b1, b2, . . , bn), если эти перестановки в первых t (0 6 t < n) элементах для
некоторого t, и при этом at+1 < bt+1.
ответ
4,0/5
2
SilverWind
середнячок
8 ответов
2.6 тыс. пользователей, получивших
1. вывести на экран 6 раз своё имя
program imya;
const n=6;
var i:integer;
begin
for i:=1 to n do
writeln('ваше имя');
end.
Пояснения: делала с цикла (можно было написать и шесть раз writeln, но так удобнее). Переменную n ввела для быстрого изменения значений (если нужно будет написать имя не 6, а, к примеру, 8 раз, нужно было заменить только вначале). Ещё хочу отметить, что имя вводится по-английски и нельзя терять апострофы ( ' ).
2. program sum;
var sum:integer;
m:array[1..4] of integer;
i:integer;
begin
m[1]:=6
for i:=2 to 4 do begin
m[i]:=m[i-1]+1;
end;
sum:=m[1];
for i:=2 to 4 do begin
sum:=sum+m[i];
end;
writeln(sum);
end.
Пояснения: можно было делать и по-другому, но так тоже верно. Тут использовалось два цикла и массив. А блок-схему сами сделайте)))
3. program n!;
var n:real;
c:integer;
m:array[1..n] of integer;
begin
readln(n)
m[1]:=1;
for i:=2 to n do begin
m[i]:=m[i-1]+1;
end;
c:=m[1]
for i:=1 to n do begin
c:=c*m[i];
end;
writeln('n!',c);
end.
Если что не понятно, пишите, объясню
Объяснение:
сосиска
Алгоритм:
Должна быть переменная с суммой всех чисел (я её буду использовать как S)
1. Запрашиваем число (я его буду использовать как X)
2. Проверяем если S + X > 15 то (конец) иначе (повторяем 1 и 2 ещё раз)
Примеры на разных языках:
JavaScript:
var s = 0;
while (s < 15) {
s += input() //тут функция которая запрашивает и возвращает число
}
// действия после того как S > 15
Python:
s = 0
while s < 15:
s += input('Введите число: ') //тут функция которая запрашивает и возвращает число
// действия после того как S > 15
P.S. Если что-то не понятно, я постараюсь объяснить подробнее.