N школьников делят k яблок “поровну”, то есть так, чтобы количество яблок, доставшихся...

0 голосов
224 просмотров

N школьников делят k яблок “поровну”, то есть так, чтобы количество яблок, доставшихся любым двум школьникам, отличалось бы не более, чем на 1.

Входные данные
Программа получает на вход числа n и k.

Выходные данные
Программа должна вывести количество школьников, которым достанется яблок меньше, чем некоторым из их товарищей.

Примечание
При решении этой задачи нельзя пользоваться условной инструкцией if и циклами.

Примеры
входные данные
7
30
выходные данные
5
входные данные
7
28
выходные данные
0


Информатика (112 баллов) | 224 просмотров
0

это довольно нестандартная и сложная задача, можно было бы дать и больше баллов

Дано ответов: 2
0 голосов
Правильный ответ

Var
    n, k: integer;

begin
    readln(n, k);
    {решение без циклов и условных операторов}
    writeln('Решение Учеников = ', (n - k mod n) mod n);
    
    {проверка}        
    while k > n do
        k := k - n;
        
    if k > 0 then
        n := n - k
    else
        n := 0;
    writeln('Проверка Учеников = ', n);
end.

(53.1k баллов)
0

Примечание
При решении этой задачи нельзя пользоваться условной инструкцией if и циклами.

0

увы, но это условие)

0

прошу прощения, не увидел, что это проверка)

0 голосов

Var a, b: integer;
begin
read(b, a);
write((b - a mod b) mod b);
end.

(13.3k баллов)