具体数学读书笔记之取整函数

引言

取整函数不但在数学上具有很重要的地位,在程序设计方面也同样重要,这一章讲取整函数

数学符号及C语言库函数

取整分为两种,一种是向下取整,记为 ⌊x⌋;另一种是向上取整,记为⌈x⌉;他们分别表示取比x小或者相等的最大的整数和取比x大或相等的最小的整数。在C语言中有向上取整对应着ceil(x),向下取整对应着
floor(x)

一些性质

图片说明
图中显示的是直线y = x和向下取整函数,容易看出取整函数的值都在y = x下面,不难想到向上取整函数的值都在直线上面
除此之外我们还可以证明x - 1 < ⌊x⌋ <= x <= ⌈x⌉ < x + 1, 且这个函数关于两个坐标轴互为反射
及⌊-x⌋ = -⌈x⌉ -⌊x⌋ = ⌈-x⌉
⌊x⌋ = n可以推出 n <= x < n + 1
⌊x⌋ = n 可以推出x - 1 < n <= x
⌈x⌉ = n 可以推出n - 1 < x <= n
⌈x⌉ = n 可以推出x <= n < x + 1

真题练习

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2186
题意:将n个人分成3分,第一份占1/2,第二份占2/3,其他的是第三份(向下取整)
其次,将这三份人分别分组,要求每十人为一组,问由多少组,不够10人仍为1组(向上取整)
解题思路:先向下取整再向上取整
参考代码

#include <stdio.h>
#include <math.h>

int main() {
    int T; scanf("%d", &T);
    while (T--) {
        double n; scanf("%lf",  &n);
        double a = floor(n / 2);
        double b = floor((n - a) / 3 * 2);
        double c = n - a - b;
        int ans1 = ceil(a / 10);
        int ans2 = ceil(b / 10);
        int ans3 = ceil(c / 10);
        printf("%d\n", ans1 + ans2 + ans3);
    }
    return 0;
}
#笔记##读书笔记#
全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务