返回 课程

信奥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 主题|小节
课 6, 主题|小节 4
进行中

6.3 向上取整与向下取整

2025年9月22日
课 进展
0% 完成

“小朋友们,在处理除法时,我们经常需要进行取整操作。” 我继续讲解道。

[图片:展示向上取整和向下取整的概念]

6.3.1 向下取整

// 整数除法自动向下取整
printf("%dn", 7 / 2);     // 输出:3
printf("%dn", 15 / 4);    // 输出:3
printf("%dn", -7 / 2);    // 输出:-3

// 应用场景:平均分配问题
const int TOTAL_ITEMS = 100;
const int BOXES = 3;

int items_per_box = TOTAL_ITEMS / BOXES;  // 每个盒子至少放多少个
printf("%dn", items_per_box);  // 输出:33

[图片:向下取整的实际应用场景示意图]

练习题:

  1. 选择题:在C++中,23/5的结果是多少? A. 4 B. 4.6 C. 5 D. 4.0

正确答案:A 解析:整数除法会自动向下取整,23÷5=4余3,所以结果是4。

  1. 判断题:整数除法的结果总是小于等于实际的除法结果。

正确答案:√ 解析:因为整数除法是向下取整,所以结果要么等于实际结果(整除时),要么小于实际结果(有余数时)。

6.3.2 向上取整

// 向上取整公式:(a + b - 1) / b
printf("%dn", (7 + 2 - 1) / 2);     // 输出:4
printf("%dn", (15 + 4 - 1) / 4);    // 输出:4

// 应用场景:容器装载问题
const int ITEMS = 10;
const int CAPACITY = 3;
int containers = (ITEMS + CAPACITY - 1) / CAPACITY;
printf("%dn", containers);  // 输出:4

[图片:向上取整的计算过程示意图]

🔬 实验三:分组问题
题目:有67名学生,每个班级最多容纳30人,最少需要多少个班级?

const int STUDENT_COUNT = 67;
const int CLASS_SIZE = 30;

// 使用向上取整计算需要的班级数
int classes_needed = (STUDENT_COUNT + CLASS_SIZE - 1) / CLASS_SIZE;
printf("%dn", classes_needed);  // 输出:3

[图片:分组问题的图解]

练习题:

  1. 选择题:使用向上取整公式(a + b – 1) / b,计算13/5的结果应该是多少? A. 2 B. 3 C. 2.6 D. 3.0

正确答案:B 解析:使用公式(13 + 5 – 1) / 5 = 17 / 5 = 3,成功实现了向上取整。

  1. 判断题:当被除数是除数的整数倍时,向上取整和向下取整的结果相同。

正确答案:√ 解析:如果能整除,无论是向上还是向下取整,结果都是一样的。比如10/2=5。