Вклассе 35 учеников. из них за контрольную по 12 имеют пятерки, за контрольную по - 9, а 16 учеников получили другие оценки. сколько учеников получили пятерку за контрольные по обоим предметам?
Правильный ответ: двое. Всего учеников 35, другие отметки получили 16 учеников, т.е. 19 получили пятерки по математике или по физике, или по двум предметам сразу. Из условия задачи известно, что по математике пятерок 12, по физике 9, т.е. вместе 21 отличная отметка, но учеников. получивших 21 отличную отметку всего 19. Отсюда вывод - два ученика получили по две отличные отметки.
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016 begin var s:=ReadlnString('Введите двухзначное 16-ричное число'); var mH:array['A'..'F'] of integer:=(10,11,12,13,14,15); if s.Length=1 then s:='0'+s; var c:=s.ToCharArray; var n:=0; for var i:=0 to 1 do case c[i] of '0'..'9':n:=16*n+StrToInt(c[i]); 'A'..'F':n:=16*n+mH[c[i]]; else begin Writeln('Недопустимый символ: ',c[i]); Exit end end; Writeln('Десятичный эквивалент: ',n) end.
Тестовое решение: Введите двухзначное 16-ричное число 3A Десятичный эквивалент: 58
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016 begin var m:=ReadInteger('m=').ToString.ToSortedSet; var n:=ReadInteger('n=').ToString.ToSortedSet; if m.Intersect(n).Count>0 then Writeln('Есть одинаковые цифры') else Writeln('Нет одинаковых цифр') end.
Тестовые решения: m= 12345 n= 76840 Есть одинаковые цифры
m= 123456 n= 789087 Нет одинаковых цифр
А вот примерно так почему-то заставляют писать эту же задачу в школах:
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016 var i,m,n:integer; found:boolean; sm,sn:string; begin Writeln('Введите через пробел два натуральных числа: '); Read(m,n); Str(m,sm); Str(n,sn); found:=False; for i:=1 to Length(sm) do if Pos(sm[i],sn)>0 then begin found:=True; break end; if found then Writeln('Есть одинаковые цифры') else Writeln('Нет одинаковых цифр') end.
Тестовое решение: Введите через пробел два натуральных числа: 5354353 111211 Нет одинаковых цифр