В начале в строке находилось 333 троек по 8 плюс одна 8, всего 1000 восьмерок. 1. При выполнения цикла каждая из троек 8 будет заменена на одну 9. Значит у нас получится строка длиной в 334 символа, где 333 девятки и последний символ - восьмерка 2. Далее 333 девятки заменятся на 111 восьмерок плюс последняя восьмерка - всего получим 112 восьмерок 3. Из 112 восьмерок получится 37 девяток и одна восьмерка 4. И 37 девяток получим 12 восьмерок плюс одна девятка и плюс последняя восьмерка 5. 12 восьмерок дадут 4 девятки плюс последние 9 и 8 6. И наконец получаем строку 8998 ответ: 8998
Var i,j,k:longint; begin for i:=1 to 1000 do for j:=1 to 1000 do for k:=1 to 10000 do if sqr(i)+sqr(j)=sqr(K)then begin writeln(i,' ',j,' ',k); {вывожу все тройки, можно убрать} if i+j+k=1000 then begin writeln('! ',i,' ',j,' ',k); {нужная тройка} exit; {прерывание программы} end; end; end.
1. При выполнения цикла каждая из троек 8 будет заменена на одну 9. Значит у нас получится строка длиной в 334 символа, где 333 девятки и последний символ - восьмерка
2. Далее 333 девятки заменятся на 111 восьмерок плюс последняя восьмерка - всего получим 112 восьмерок
3. Из 112 восьмерок получится 37 девяток и одна восьмерка
4. И 37 девяток получим 12 восьмерок плюс одна девятка и плюс последняя восьмерка
5. 12 восьмерок дадут 4 девятки плюс последние 9 и 8
6. И наконец получаем строку 8998
ответ: 8998
i,j,k:longint;
begin
for i:=1 to 1000 do
for j:=1 to 1000 do
for k:=1 to 10000 do
if sqr(i)+sqr(j)=sqr(K)then
begin
writeln(i,' ',j,' ',k); {вывожу все тройки, можно убрать}
if i+j+k=1000 then
begin
writeln('! ',i,' ',j,' ',k); {нужная тройка}
exit; {прерывание программы}
end;
end;
end.