1610. Зайцы в клетках

 

Всем известен, так называемый, принцип Дирихле, который формулируется следующим образом:

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

В данной задаче мы рассмотрим более общий случай этого классического математического факта. Пусть имеется n клеток и m зайцев, которых рассадили по этим клеткам. Рассчитайте максимальное количество зайцев, которое гарантированно окажется в одной клетке.

 

Вход. В одной строке заданы два натуральных числа n и m (1 ≤ n, m ≤ 109).

 

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

 

Пример входа

Пример выхода

2 3

2

 

 

РЕШЕНИЕ

элементарная задача

 

Анализ алгоритма

Максимальное количество зайцев, которое гарантированно окажется в одной клетке, равно . Это выражение можно вычислить так:

 = (m + n – 1) / n

Указанное выражение на языке С можно также записать в виде:

 = m / n + bool(m % n);

Результатом операции преобразования типов bool(x) является:

·        0 (ложь), если x = 0;

·        1 (истина), если x ≠ 0;

 

Реализация алгоритма

Читаем входные данные. Вычисляем и выводим ответ.

 

scanf("%d %d",&n,&m);

res = (m + n - 1) / n;

printf("%d\n",res);

 

Реализация алгоритмаусловный оператор

 

#include <stdio.h>

 

int n, m, res;

 

int main(void)

{

  scanf("%d %d", &n, &m);

  res = m / n;

  if (m % n > 0) res++;

  printf("%d\n", res);

  return 0;

}

 

Реализация алгоритма – bool

 

#include <stdio.h>

 

int n, m, res;

 

int main(void)

{

  scanf("%d %d", &n, &m);

  res = m / n + bool(m % n);

  printf("%d\n", res);

  return 0;

}

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);   

    int n = con.nextInt(), m = con.nextInt();

    int res = (m + n - 1) / n;

    System.out.println(res);     

  }

}   

 

Python реализация

 

n, m = map(int,input().split())

res = (m + n - 1) // n

print(res)