Для того, чтобы в последовательности из 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
Вводить данные можно как через пробел, так и построчно
Для того, чтобы в последовательности из 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Вводить данные можно как через пробел, так и построчно
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.