Начнем с утверждения, что это была блондинка, потому что таких утверждений два. Если II сказал правду, то второе его утверждение ложно и блондинка была в шляпе. Тогда утверждение I о брюнетке - ложь. Это рассуждение иллюстрирует вторая сверху таблица. В то же время, будет ложным утверждение IV об отсутствии очков и получается, что была блондинка в шляпе и в очках. В этом случае ложно утверждение III о том, что это была рыжая. Удостоверяемся, что противоречий в цепочке рассуждений нет. Окончательно: это была блондинка в шляпе и очках. Каждый свидетель дал одно истинное показание и одно ложное.
Прочие проверки можно не делать, считая задачу корректной.
Вот тебе простой вариант ришение задачи (коментар=пояснение)
PascalВыделить код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 program prg; uses crt; var rez,chislo,min,max:integer; begin Write('Enter number = ');readln(chislo); //zanosim 1 chislo max:=chislo; //v max ta min min:=chislo; //chtobu potom mu soukb sravnivat s drugimi chislamu while (chislo<>0) do //zapuskaem zikl poka mu ne napishem 0 begin if (chislo>max)then max:=chislo; //sravnivaem s max if (chislo<min) then min:=chislo; //sravnivaem s min readln(chislo); //snova pihem chislo end; rez:=(max-min); //nahodim raznizy writeln('max(',max,') - min(',min,') = ',rez); //otvet end.
Если II сказал правду, то второе его утверждение ложно и блондинка была в шляпе. Тогда утверждение I о брюнетке - ложь. Это рассуждение иллюстрирует вторая сверху таблица.
В то же время, будет ложным утверждение IV об отсутствии очков и получается, что была блондинка в шляпе и в очках. В этом случае ложно утверждение III о том, что это была рыжая.
Удостоверяемся, что противоречий в цепочке рассуждений нет.
Окончательно: это была блондинка в шляпе и очках. Каждый свидетель дал одно истинное показание и одно ложное.
Прочие проверки можно не делать, считая задачу корректной.