码蹄集 - MT2012 · 鸽子洞

码蹄集 - MT2012 · 鸽子洞,第1张

传送门
    • 鸽子洞
      • 题目描述
      • 输入描述
      • 输出描述
      • 样例一
        • 输入
        • 输出
  • 题目分析
  • AC代码


鸽子洞
  • 鸽子洞

时间限制:1秒
空间限制:64M


题目描述

如果n只鸽子要分配如m个鸽洞内,求鸽子最多的鸽洞至少有多少只鸽子。


输入描述

第一行两个整数n和m,表示有n只鸽子和m个鸽洞。

1 ≤ n , m ≤ 1 , 000 , 000 , 000 1\leq n,m\leq 1,000,000,000 1n,m1,000,000,000


输出描述

输出一行一个整数,表示鸽子最多的鸽洞至少有多少只鸽子。


样例一 输入
4 3
输出
2
题目分析

数据范围 1 0 9 10^9 109不超32位整数,因此直接采用 i n t int int即可。

n n n个格子放入 m m m个鸽洞,咋一看有点像鸽巢原理。

也就是说,当 n n n正好是 m m m的倍数的时候( n % m = 0 n\% m=0 n%m=0),每个鸽洞都正好容纳 n m \frac{n}{m} mn个格子。

但是如果 n % m ≠ 0 n\% m\neq0 n%m=0呢?那就直接把多出来的 n n%m n只鸽子放入到 n n%m n个鸽洞中。因为 n n%mn ,所以可以做到每个鸽洞中顶多再放入一只鸽子。这样最多的鸽洞的鸽子数就是 n m + 1 \frac{n}{m}+1 mn+1

AC代码
#include 
using namespace std;
#define mem(a) memset(a, 0, sizeof(a))
#define dbg(x) cout << #x << " = " << x << endl
#define fi(i, l, r) for (int i = l; i < r; i++)
#define cd(a) scanf("%d", &a)
typedef long long ll;
int main() {
    int n, m;
    cin >> n >> m;
    cout << n / m + (n % m != 0) << endl;
    return 0;
}

每周提前更新菁英班周赛题解,点关注,不迷路

原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/124850505

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1296073.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-10
下一篇2022-06-10

发表评论

登录后才能评论

评论列表(0条)

    保存