题目分析

  1. 题目给出我们一个小数
  2. 我们要根据四舍五入规则对其进行舍入,输出最后舍入后的整数结果

方法一:判断十分位

  • 实现思路
    • 我们直接将原数字乘10

    • 获得个位数字

    • 根据个位数字进行四舍五入

    • 输出最后的结果

#include <iostream>
#include <algorithm>
#include <math.h>

using namespace std;


int main() {
    double n;
    cin >> n;

    int jud = (int)(n * 10)%10;                    // 获取十分位的值
    int res = jud >= 5 ? (int)n + 1 : (int) n;     // 判断十分位的值是四舍还是五入
    cout << res;
    return 0;
}

复杂度分析

  • 时间复杂度:O(1)O(1),常量级的时间运算就可以判断结果
  • 空间复杂度:O(1)O(1),常量级的空间占用

方法二:加0.5取整

  • 实现思路
    • 根据c++的int取整规则,小数取整只保留整数部分,小数部分全部舍去
    • 因此如果我们要实现四舍五入的取整效果,只需要在原小数的基础上加0.5,再进行取整,就可以实现四舍五入的最终效果了

alt

#include <iostream>
#include <algorithm>
#include <math.h>

using namespace std;


int main() {
    double n;
    cin >> n;
    cout << int(n+0.5);
}

复杂度分析

  • 时间复杂度:O(1)O(1),常量级的时间运算就可以判断结果
  • 空间复杂度:O(1)O(1),常量级的空间占用