srzontmp
Во втором задании во втором тесте другой результат получается, не 143702, а 122324, второй тест у Вас не пройдет, поэтому и не стал записывать решение. Текст программы могу выложить. var k,n,i,j,dk,k3,k5: integer; a: array[1..3] of integer; begin write('k n через пробел: '); readln(k,n); for i:=1 to 3 do a[i]:=0; for i:=1 to n do begin for j:=3 downto 2 do a[j]:=a[j-1]; dk:=a[3]; a[1]:=k; k3:=k div 3; while (k-k3*3) mod 5<>0 do k3:=k3-1; k5:=(k-k3*3) div 5; k:=k+k3*5+k5*9-dk; end; writeln(k); end.
srzontmp
Нашел ошибку в программе. Нужно заменить строку a[1]:=k; на строку a[1]:=k-a[2]-a[3];
Answers & Comments
Решение в прикрепленном файле.
a: array[1..3] of integer;
begin
write('k n через пробел: ');
readln(k,n);
for i:=1 to 3 do a[i]:=0;
for i:=1 to n do
begin
for j:=3 downto 2 do a[j]:=a[j-1];
dk:=a[3];
a[1]:=k;
k3:=k div 3;
while (k-k3*3) mod 5<>0 do k3:=k3-1;
k5:=(k-k3*3) div 5;
k:=k+k3*5+k5*9-dk;
end;
writeln(k);
end.