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

In k chữ số đầu của 1/n không dùng số thực trong C

In k chữ số thập phân của 1/n không dùng float/double. Sử dụng thuật toán chia tay: nhân dư với 10, chia cho n, lấy phần nguyên, lặp lại.

Ví dụ

n=9, k=7 → 1/9 = 0.1111111... → In: 1111111

Thuật toán

remain = 1
for i = 1 to k:
    digit = (10 * remain) / n
    print digit
    remain = (10 * remain) % n

Chương trình

#include <stdio.h>

int main() {
    int n = 9, k = 7, remain = 1;
    printf("First %d digits of 1/%d: ", k, n);
    for (int i = 0; i < k; i++) {
        printf("%d", (10 * remain) / n);
        remain = (10 * remain) % n;
    }
    return 0;
}

Kết quả

First 7 digits of 1/9: 1111111