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