1. Современный вариант // PascalABC.NET 3.2, сборка 1439 от 09.05.2017 // Внимание! Если программа не работает, обновите версию!
begin ReadlnString.GroupBy(c->c).Select(x->(x.Key,x.Count)).OrderBy(x->x[0]) .Select(x->Format('"{0}" - {1}',x[0],x[1])).Println(NewLine) end.
Пример 10101110 "0" - 3 "1" - 5
2. Школьный вариант в стиле Pascal ABC, Free Pascal
var s:string; i,k0,k1:integer; begin Readln(s); k0:=0; k1:=0; for i:=1 to Length(s) do if s[i]='0' then Inc(k0) else Inc(k1); Writeln('"0" - ',k0); Writeln('"1" - ',k1) end.
Все в паскале: 1. Формула пути S=V*t,V=S/t; Значит программа имеет вид var s, v, t:integer; begin writeln('Введите путь и время'); readln(s, t); v:=s/t writeln('ответ: V=', v); end. Все остальное по анологии
Во 2 и 3 y:=/формула в условии/ и выводишь у В 4, воспользуйся формулой площади S=a*b (a и b - ширина с длинной) В 5 a=P-2*b (а основание, b бок сторона) В 7 o=(a+b+c)/3 (о - ср., а, b, c - число в классах) 8. var a, b:integer; begin writeln('Введите числа'); readln(a, b); writeln('Сумма=', a+b); writeln('Разность=', a-b); end. В 9 как 8, только вместо + и - надо * И /
Лемма. Если на каком-то шаге все куски одинаковой массы m, то можно путём указанных операций сделать так, чтобы все куски стали массой m/2. Доказательство. На первом шаге съедаем кусок массы m и разрезаем другой кусок массы m. Получится 8 кусков массы m и 2 куска массы m/2. Теперь 8 раз съедаем куски m/2 и распиливаем куски массы m.
Перейдём к собственно решению. Понятно, что Саша не мог съесть весь сыр. Поэтому, поскольку он съел целое число граммов сыра, он мог съесть не более, чем 360 - 1 = 359 граммов. Покажем, как он это мог сделать.
Пусть изначально головка сыра была разрезана так: 5 кусков по 512/9 г, 2 куска по 256/9 г, 1 кусок 128/9 г, 1 кусок 32/9 г, 1 кусок 8/9 г (легко проверить, что сумма всех масс равна 360).
Сначала съедим куски массой 8/9, 32/9, 128/9 и распилим три куска по 512/9 г. Останется 2 куска по 512/9 и 8 кусков по 256/9. Затем дважды съедим куски по 256/9 и разрежем оставшиеся куски по 512/9. После этого будет 10 кусков по 256/9.
Уменьшим размер каждого куска в 256 раз (воспользуемся 8 раз процессом, описанным в лемме). Тогда останутся 10 кусков массой 1/9 г. Съедаем один кусок и распиливаем любой оставшийся кусок. Несъеденная масса 9 * 1/9 = 1 г, значил, съел Саша 360 - 1 = 359 г сыра.
x: string;
begin
readln(x);
write('Единиц ');
writeln(x.Where(x -> x = '1').Count);
write('Нулей ');
writeln(8 - x.Where(x -> x = '1').Count);
end.
Пример
00011111
5
3