Решить эту задачу нам информация, приведенная в условиях задачи после сообщения о том, что островитянин дал ответ на мой вопрос: мое замечание о том, что после его ответа я узнал истинный ответ на свой вопрос. Предположим, что островитянин, с которым я разговаривал (обозначим его А), ответил на мой вопрос "да". Мог бы я после такого ответа знать, что по крайней мере один из встретившихся мне островитян рыцарь? Разумеется, нет. Действительно, А мог оказаться рыцарем и на мой вопрос правдиво ответить "да" (его ответ соответствовал бы истине, поскольку по крайней мере один островитянин, а именно А - рыцарь). Оба островитянина могли оказаться лжецами. В этом случае А, солгав, ответил бы на мой вопрос "да" (что было бы ложью, так как ни один из островитян не был рыцарем). Таким образом, получив от А ответ "да", я не смог бы узнать истинный ответ на свой вопрос. Но, как говорится в условиях задачи, после ответа А мне стал известен правильный ответ на заданный мною вопрос. Следовательно, А мог ответить только "нет". Разберемся теперь, кто такие островитянин А и его приятель, которого мы обозначим В. Если бы А был рыцарем, то он не мог бы дать правдивый ответ "нет", поэтому А - лжец. Так как его отрицательный ответ ложен, то по крайней мере одни из двух островитян должен быть рыцарем. Следовательно, А - лжец, а В - рыцарь
//Задача 1
begin
var a := ArrRandom(20, -20, 20).Println;
Println(a.Min, ' ', a.Max);
end.
//Задача 2
begin
var a := ReadArrInteger(10);
a.Where(p -> p.IsOdd).Count.Println;
end.
//Задача 3
begin
SeqGen(90, 10, x -> x + 1).Where(x -> x mod 3 = 0).Println;
end.
//Задача 4
begin
ArrRandom(10,-20,20).Println;
end.
//Задача 5
begin
var (a, b) := ReadInteger2;
Range(a, b).Product.Println
end.
//Задача 4
var
n, i, sum, count: integer;
begin
Writeln('Введите число: ');
Readln(n);
count := 0;
while n <> 0 do
begin
i := n mod 10;
sum += i;
count += 1;
n := n div 10;
end;
Writeln('Сумма цифр: ', sum);
Writeln('Количество: ', count);
end.
//Задача 7
var
n, i, sum, count: integer;
begin
Writeln('Введите число: ');
Readln(n);
count := 0;
while n <> 0 do
begin
i := n mod 10;
if not Odd(i) then count += 1;
n := n div 10;
end;
if count <> 0 then Writeln('True')
else Writeln('False');
end.
Задача 8
begin
var n := ReadInteger;
for var i := 1 to n do
begin
Println('Я НЕ учусь программировать');
end;
end.
s = ''
k = 0
while s != 'стоять' or s != 'лежать':
s = input()
k += 1
print(k)
Примечания:
1 табуляция: 4, 5 строки.