写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 ,向上取整;小于 ,则向下取整。数据范围:保证输入的数字在 位浮点数范围内
方法一:利用语言特性求解,输入加上0.5后取整
如果小数点后的数值大于,那么加上后比原数字大,取整后为原数的整数部分,即上整数;如果小数点后的数值大于,由于c/c++的取整操作是取下整,所以取整后为原数字的整数部分。 时间复杂度: ,空间复杂度 .
#include <cstdio>
#include <iostream>
using namespace std;
int main(void){
    double num;
    cin >> num;
    int ans = (int)(num + 0.5); //c/c++取整是向下取证,
    printf("%d", ans);
    return 0;
}
方法二:对输入的浮点数的小数点后的第一位进行判断
截取输入的浮点数的小数点后的第一位进行判断。时间复杂度: ,空间复杂度 .
#include <cstdio>
#include <iostream>
using namespace std;
int main() {
    float num;
    cin >> num;
    int n = (int) num ;
    int dec = (int)(num * 10) % 10;
    if (dec >= 5) {
        n = n + 1;
    }
    printf("%d\n",n);
    return 0;
}



京公网安备 11010502036488号