Урок 23 Задача 2

Урок 23 Задача 2:

Есть массив (пусть не более 10 элементов):

[0, 3, 2, 1, 0, 3, 2, 4, 0, -5]

Задача: перенести все нули в конец, так чтобы в итоге получилось:

[3, 2, 1, 3, 2, 4, -5, 0, 0, 0]

Решите:

Любым способом
Решите со сложностью не более чем 2N (не заводя дополнительных массивов)

Примечание: давалась как простая разминочная задачка для собеседования в Яндекс.

Урок 22 Задача 2

Урок 22 Задача 2:

Есть исходный код:

var s:string;  i, n: Integer;
  a:  array[1..8] of char;
begin
 writeln('Vvedite stroku');
 readln(s);
 n := 1;
 while(n<10) do      // 1-8
   begin
   for i:=1 to Length(s) do
       if (s[i]>='0')and(s[i]<='9') then
         begin
           a[n]:=s[i]; 
           inc(n); 
         end;
   end;
 for i:=low(a) to high(a) do
   write(a[i],' '); // выводим массив
 readln();
end.

Задача:

Урок 22 Задача 1

Урок 21 Задача 7

Урок 21 Задача 7:

Дано натуральное число N. Вычислите сумму его цифр.
(При решении этой задачи нельзя использовать строки, списки, массивы (ну и циклы, разумеется). Разрешена только рекурсия и целочисленная арифметика. Используйте операцию получения остатка от деления, и операцию целочисленного деления).

Урок 21 Задача 6

Урок 21 Задача 6:

Пользователь получает на вход целое положительное число N напишите рекурсивную функцию, которая вернет число Фиббоначи стоящии под этим номером

function fib(n: integer): integer;
begin
  if(n < 2) then
    result:= n
  else
    result:= fib(n-1) + fib(n-2);
end;

begin
  write(fib(7)); // передаем номер числа
  readln();
end.

Урок 21 Задача 5

Урок 21 Задача 5:

Пользователь получает на вход целое положительное число N напишите рекурсивную процедуру, которая выведет все числа Фиббоначи от первого до N-ого

procedure fib (a, b, n: integer);
begin
  if not (n = 0) then
  begin
    write(a, '  ');
    fib (b, a+b, n-1); // передаем новые значения и счетчик, уменьшенный на 1
  end;
end;

begin
  fib(1, 1, 8); // передаем первые два числа и N-ное число (оно же счетчик)
  readln();
end.

Консоль:

Урок 21 Задача 4

Урок 21 Задача 4:

Дано целое положительное число N, вычислите N! (эн факториал).

function fakt(n: integer):integer;
begin
  if (n = 1) then
    result := 1
  else
    result := n * fakt(n-1);
end;

begin
  writeln(fakt(6));
  readln();
end.

Урок №12.1 Задание 8

Урок №12.1 Задание 8

Решите с помощью цикла repeat/until:
Выведите на экран, все четные числа от 35 до 117 и нечетные числа, делящиеся на 7 и 3 нацело и при этом лежащие в диапазоне от 45 до 99.

Урок №12.1 Задание 7

Урок №12.1 Задание 7

Решите с помощью цикла repeat/until:
Выведите на экран, все четные числа, делящиеся на 3 и на 6 нацело , лежащие в диапазоне от 35 до 117.

program Pr12_1_7;
var i:integer;
begin
     i:=35;
     repeat
     if ((i mod 3=0) or (i mod 6=0)) and (i mod 2=0) then
      write(i:4);
     i:=i+1;
     until (i=117);
  readln();
end.            

Консоль:

  36  42  48  54  60  66  72  78  84  90  96 102 108 114

Урок №12.1 Задание 6

Урок №12.1 Задание 6

Пользователь вводит в консоль символы (после каждого нажимая Enter), в ответ выводите символ '&', до тех пор пока пользователь не введёт '#', после чего завершите программу (не выводя ничего в ответ).

program Pr12_1_6;
var a:char;
begin
     repeat
     readln(a);
     if a<>'#' then
     writeln('&')
     until (a='#');
  readln();
end.           

Консоль:

1
&
2
&
#

Pages

Subscribe to fkn+antitotal RSS