4
Объяснение:
Зная, что изначально в куче было S камней, для победы нужно получить не менее 32, рассмотрим все возможные ходы Пети, при которых он не выиграет. Чтобы Петя не выиграл, после любого его хода в куче должно получиться меньше 32 камней.
Действие А) S+1<32, тогда S<32-1=31
Действие Б) 3*S+1<32, тогда S<(32-1)/3=11
А теперь распишем ходы Вани. Чтобы точно победить, Ване нужно действовать так, чтобы получить максимальный результат - из двух действий максимальный дает действие Б. После его хода в куче должно стать или 32 камня, или больше.
Действие А) 3*(S+1)+1=3*S+4>=32, тогда S>=(32-4)/3=10
Действие Б) 3*(3*S+1)+1=9*S+4>=32, тогда S>=(32-4)/9=4
Таким образом мы понимаем, что нужное для Ваниной победы первым ходом число S должно должно лежать в диапазоне от 4 до 31, тогда минимальным подходящим будет 4. Проверим:
Случай 1. Петя ходит действием А. 4+1=5. Ваня ходит действием Б. 5*3+1=16. Ваня не выиграл.
Случай 2. Петя ходит действием Б. 3*4+1=13. Ваня ходит действием Б. 13*3=39. Ваня выиграл.
Несмотря на то, что если Петя пойдет действием А, Ваня не выиграет, его победа всё равно возможна, если тот пойдет действием Б. А нас именно о случае, когда она возможна, и спрашивают.
Чтобы убедиться в верности рассуждений, проверим, нельзя ли взять еще меньшее число - 3:
Случай 1. Петя ходит действием А. 3+1=4. Ваня ходит действием Б. 3*4+1=13. Ваня не выиграл.
Случай 2. Петя ходит действием Б. 3*3+1=10. Ваня ходит действием Б. 3+10+1=31. Ваня не выиграл.
Таким образом, мы выяснили, что минимальным начальным количеством камней, когда возможна победа Вани первым ходом, является 4.
ответ:
var
str: string;
i, count: integer;
begin
write('your string: ');
readln(str);
i : = length(str);
if i > 0 then begin
count : = 1;
while i > 0 do begin
if str[i] = ' ' then
count : = count + 1;
i : = i - 1;
end;
end
else
count : = 0;
writeln('number of words: ', count);
readln;
end.
объяснение: