Вызов представленной ниже рекурсивной функции приводит к появлению на экране чисел и точек. С каким минимальным натуральным аргументом а нужно вызвать эту функцию, чтобы в результате на экране появилось 5 точек (не обязательно подряд, между точками могут встречаться числа)?
Паскаль |
Си |
function gz(a:integer):integer;
var p:integer;
begin
if a<1 then begin
gz:=1; exit;
end;
if a mod 3=0 then begin
write('...');
p:=gz(a div 3)+gz(a div 4);
end
else begin
write('.');
p:=gz(a div 4);
end;
write(p);
gz:=2;
end; |
int gz(int a){
int p;
if (a < 1) return 1;
if (a % 3==0){
printf("...");
p=gz(a / 3) + gz(a / 4);
}
else {
printf(".");
p=gz(a / 4);
}
printf("%i",p);
return 2;
} |