Запишем высказывания Джона, Брауна и Смита в виде таблице, где o - это предположительный вор со слов одного из участников процесса, а x - невиновный.
Д Б С Д x o Б x x С o x
Рассмотрим варианты: 1. Джон сказал правду, тогда Смит - вор, тогда имеем Джон 2 раза сказал правду Браун 2 раза сказал правду Смит 2 раза соврал. Этот вариант не подходит под условие задачи.
2. Браун сказал правду, тогда очевидно снова Смит - вор, тогда Джон 2 раза сказал правду Браун 2 раза сказал правду Смит 2 раза соврал. Этот вариант тоже не подходит.
3. Смит сказал правду, тогда Браун - вор, тогда Джон 2 раза соврал Браун 1 раз соврал, один раз сказал правду. Смит 2 раза сказал правду. Вариант подходит.
Значит Браун - вор и не может быть оправдан. Джон - оболгал невиновного человека (Смита) и должен быть наказан за это. Смит - не врал и не крал. Следовательно Смит должен быть оправдан.
Var a,b,i,n,j,l,ier:integer; s:string; p:boolean; begin Write('Введите границы интервала в виде пары натуральных чисел '); Read(a,b); n:=0; for i:=a to b do begin Str(i,s); l:=Length(s); if l=1 then Inc(n) else begin j:=1; repeat p:=(s[j]=s[l-j+1]); Inc(j) until (j>l) or (not p); if p then Inc(n) end end; Writeln('Количество палиндромов равно ',n) end.
Тестовое решение: Введите границы интервала в виде пары натуральных чисел 1550 2450 Количество палиндромов равно 10
CA716hex=829206dec=3123426oct