返回 课程

信奥AC之路-1级

0% 完成
0/0 步骤
  1. 第1课 开发环境与基础输出
    5 主题|小节
  2. 第2课 算术运算符
    7 主题|小节
  3. 第3课 printf与运算输出
    7 主题|小节
  4. 第4课 数的进制与拆位
    6 主题|小节
  5. 第5课 变量与基础运算
    17 主题|小节
  6. 第6课 常量与取整运算
    8 主题|小节
  7. 第7课 关系运算
    8 主题|小节
  8. 第8课 逻辑运算
    9 主题|小节
  9. 第9课 输入与计算进阶
    10 主题|小节
  10. 第10课 if语句及双分支语句
    8 主题|小节
  11. 第11课 if语句及双分支进阶
    11 主题|小节
  12. 第12课 三目运算
    9 主题|小节
  13. 第13课 多分支、多if和switch语句
    11 主题|小节
  14. 第14课 循环(基本输出)
    7 主题|小节
  15. 第15课 循环(While+If)
    8 主题|小节
  16. 第16课 循环(计数、求和、求乘积)
    10 主题|小节
  17. 第17课 循环进阶(While+)
    8 主题|小节
  18. 第18课 do-while及while其他用法
    8 主题|小节
  19. 第19课 For循环基础
    9 主题|小节
  20. 第20课 For循环进阶
    8 主题|小节
课 9, 主题|小节 5
进行中

9.4 取整的魔法

2025年9月22日
课 进展
0% 完成
// 向下取整(整除)
int down = num / base;             // 直接使用整除运算

// 向上取整
int up = (num + base - 1) / base;  // 使用通用公式

🔬 实验三:分组计算器
题目描述:
有n个学生,每组最多k人,计算最少需要多少组。

样例输入:

17 5

样例输出:

4

解题思路:

  1. 使用向上取整公式
  2. 计算组数
int n, k;
scanf("%d%d", &n, &k);    // 读入学生总数和每组人数

// 使用向上取整公式计算组数
int groups = (n + k - 1) / k;
printf("%dn", groups);

练习题:

  1. 选择题:有377个学生,每组40人,最少需要多少组?
    A. 9
    B. 10
    C. 8
    D. 11

正确答案:B
解析:使用向上取整公式:(377 + 40 – 1) / 40 = 416 / 40 = 10。因为377不能被40整除,所以需要多开一组。

  1. 判断题:对于任意正整数n和k,n/k的结果总是等于(n+k-1)/k向下取整的值。

正确答案:×
解析:n/k是向下取整的结果,而(n+k-1)/k是向上取整的结果,两者在n不能被k整除时会有1的差值。