Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tính phép chia đến n chữ số thập phân

Cho giá trị x và y là số nguyên dương cùng với giá trị n cho số chữ số thập phân, nhiệm vụ là thực hiện phép chia đến n chữ số thập phân.

Ví dụ

Đầu vào: x = 36, y = 7, n = 5
Đầu ra: 5.14285

Đầu vào: x = 22, y = 7, n = 10
Đầu ra: 3.1428571428

Phương pháp sử dụng trong chương trình dưới đây:

  • Nhập giá trị a, b và n
  • Kiểm tra nếu b = 0 thì phép chia vô hạn, nếu a = 0 thì kết quả là 0
  • Nếu n > 1 thì lưu giá trị dư và trừ nó từ số bị chia, sau đó nhân kết quả cho 10. Bắt đầu vòng lặp tiếp theo
  • In kết quả

THUẬT TOÁN

BẮT ĐẦU
Bước 1 → Khai báo hàm tính phép chia đến n chữ số thập phân
    void compute_division(int a, int b, int n)
    KIỂM TRA NẾU (b == 0)
        In "Vô hạn"
    KẾT THÚC
    KIỂM TRA NẾU (a == 0)
        In 0
    KẾT THÚC
    KIỂM TRA NẾU (n <= 0)
        In a/b
    KẾT THÚC
    KIỂM TRA NẾU (((a > 0) && (b < 0)) || ((a < 0) && (b > 0)))
        In "-"
        Gán a = a > 0 ? a : -a
        Gán b = b > 0 ? b : -b
    KẾT THÚC
    Khai báo và gán int dec = a / b
    VỒNG LẶP VỚI int i = 0; i <= n; i++
        In dec
        Gán a = a - (b * dec)
        NẾU (a == 0)
            THOÁT
        KẾT THÚC
        Gán a = a * 10
        Gán dec = a / b
        NẾU (i == 0)
            In "."
        KẾT THÚC
    KẾT THÚC VỒNG LẶP
Bước 2 → Trong main()
    Khai báo và gán int a = 36, b = 7, n = 5
    Gọi compute_division(a, b, n)
KẾT THÚC

Ví dụ mã nguồn

#include <bits/stdc++.h>
using namespace std;

void compute_division(int a, int b, int n) {
    if (b == 0) {
        cout << "Infinite" << endl;
        return;
    }
    if (a == 0) {
        cout << 0 << endl;
        return;
    }
    if (n <= 0) {
        cout << a / b << endl;
        return;
    }
    if (((a > 0) && (b < 0)) || ((a < 0) && (b > 0))) {
        cout << "-";
        a = a > 0 ? a : -a;
        b = b > 0 ? b : -b;
    }
    int dec = a / b;
    for (int i = 0; i <= n; i++) {
        cout << dec;
        a = a - (b * dec);
        if (a == 0)
            break;
        a = a * 10;
        dec = a / b;
        if (i == 0)
            cout << ".";
    }
}

int main() {
    int a = 36, b = 7, n = 5;
    compute_division(a, b, n);
    return 0;
}

Kết quả đầu ra

5.14285