Inforealto
?>

5 санның инкрементін және декрементін табатын программа құрыңыз.​

Информатика

Ответы

Картузов-Алексей1252

Для того, чтобы в последовательности из n элементов удалить последний путем вычеркивания каждого k-го элемента, n должно быть кратно k - это и есть условие успешного удаления. Запишем его в виде n mod k = 0, где mod - операция получения остатка целочисленного деления n на k.

Если n не кратно k, то будут вычеркнуты [n / k] элементов последовательности. Здесь [ ] - обозначение операция взятия целой части числа (антье), введенное в математику К. Гауссом.

После вычеркивания [n / k] элементов, в последовательности останется n₁ = n - [n / k] элементов. Если повторять этот процесс, то либо на шаге m будет вычеркнут последний элемент, либо количество элементов станет меньше k.

Рассмотрим приведенный в задании пример.

n=13, k=2

n mod k ≠ 0, поэтому полагаем n₁ = n - [n / k] = 13 - [13 / 2] = 13 - 6 = 7

n₁ mod k ≠ 0, поэтому полагаем n₂ = n₁ - [n₁ / k] = 7 - [7 / 2] = 7 - 3 = 4

n₂ mod k = 0, следовательно на третьем шаге вычеркивания мы получим нужный результат.

PascalABC.NET 3.4.2, сборка 1884 от 24.11.2018Внимание! Если программа не работает, обновите версию!

begin

 var (n, k) := ReadInteger2;

 var m := 0;

 while n >= k do

 begin

   if n mod k = 0 then

   begin

     Print(m + 1);

     exit

   end

   else

   begin

     n := n - n div k;

     Inc(m)

   end

 end;

 Print(0)

end.

Пример13 23

Вводить данные можно как через пробел, так и построчно

btatarintsev
ответ:1)

var tf : real;

begin

 for tc : integer := 0 to 25 do  

 begin

   tf := (9 * tc) / 5 + 32;

   println(tc, '|', tf);

 end;

end.

2)

var a, sum : real;

begin

 readln(a);

 while a <> 0 do

 begin

   sum += a;

   readln(a);

 end;

 print(sum);

end.

3)

var b : real;

var a : real := ;  //введешь нужное тебе число

var n : integer := ;  //введешь нужное тебе число

begin

 b := a;

 for i: integer := 1 to n-1 do

 begin

   b := (a + i) * b

 end;

 print(b)

end.

4)

var v, p : real;

begin

 readln(v);

 for i : integer := 1 to 12 do

 begin

   v += v/20;

   println(i,v)

 end;

end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

5 санның инкрементін және декрементін табатын программа құрыңыз.​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Iiexota280274
mdubov59
татьяна1245
mayskiyandrey90
aninepp
ЭдуардовнаКлючников1361
hello
Irinalobanowa
pavlovm8316
koptevan6
olgalooo
vladislavk-market2
Новицкий1107
vovkiv7864
rodin4010