[Làm quen OJ]. Bài 6. Hàm ceil, floor, round

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
28Tech
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Hàm ceil : làm tròn lên số nguyên gần nhất, floor : làm tròn xuống số nguyên gần nhất, round : làm tròn số nguyên phụ thuộc vào phần thập phân.

Cho số thực X nhiệm vụ của bạn là sử dụng 3 hàm trên để tìm số nguyên nhỏ hơn gần X nhất, số nguyên lớn hơn gần X nhất, số nguyên gần X nhất.

Lưu ý bạn cần in ra số nguyên nên không được in trực tiếp giá trị của 3 hàm này, nó sẽ là số thực.


Đầu vào

Dòng duy nhất chứa số thực X


Ràng buộc

1<=X<=10^6


Đầu ra

In ra 3 số trên 3 dòng


Ví dụ

Input 01
3.59
Output 01
3
4
4

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 1
    nmtuong_cpp  đã bình luận lúc 16, Tháng 4, 2025, 3:29

    Bài này số thực x mọi người dùng double nhé, dùng float rớt mấy case đằng sau.

    Mình thử thì không ép int nó vẫn tự cho về số nguyên, điều kiện là x bé hơn 10^6. x >= 10^6 thì nó ra số dạng m.n*e + p


    • 0
      Quanghuybm2k6  đã bình luận lúc 22, Tháng 5, 2025, 10:15

      cảm ơn người anh em đã cho mình ít mẹo


  • 0
    bengokyeuanh99  đã bình luận lúc 9, Tháng 4, 2025, 4:22

    import sys import math

    def read_float(): line = sys.stdin.readline() try: return float(line.strip()) except ValueError: raise ValueError("Invalid input: not a float.")

    def roundhalfup(x): return int(x + 0.5) if x >= 0 else int(x - 0.5)

    def main(): try: x = readfloat() print(int(math.floor(x))) print(int(math.ceil(x))) print(roundhalf_up(x)) except Exception as e: sys.stderr.write(f"Error: {e}\n") sys.exit(1)

    if name == "main": main()


  • 0
    tienduc_381  đã bình luận lúc 9, Tháng 4, 2025, 2:02

    include <iostream>

    using namespace std; int floor(double x){ if ((double)x == (int)x){ return x; }else{ return (int)x ; } } int ceil(double x ){ if ((double)x == (int)x){ return x; }else{ return (int)x +1 ; } } int round(double x){ if ((double)x == (int)x){ return x; }else if(x-(int)x<0.5){ return (int)x ; }else{ return (int)x+1; } } int main(){ double x; cin >> x ; cout << floor(x) << endl; cout << ceil(x) << endl; cout << round(x) << endl ; }


  • -8
    le_anh_khoa2006  đã bình luận lúc 5, Tháng 11, 2024, 8:18

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -22
    longhk2012  đã bình luận lúc 26, Tháng 5, 2024, 12:13

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • -20
      nguyen_quoc_cuonghihi  đã bình luận lúc 4, Tháng 6, 2024, 4:41

      Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.