หา k ตัวเลขทศนิยมแรกของ 1/n โดยไม่ใช้ตัวแปรชนิด floating point ใช้หลักการหารยาว (long division) แบบจำนวนเต็ม
อัลกอริทึม
- กำหนด remainder = 1
- วนลูป k รอบ: พิมพ์ (10 × remainder) / n, แล้วอัปเดต remainder = (10 × remainder) % n
โค้ดตัวอย่าง
#include <stdio.h>
int main() {
int n = 9, k = 7, rem = 1;
printf("first %d digits of 1/%d are: ", k, n);
for (int i = 0; i < k; i++) {
printf("%d", (10 * rem) / n);
rem = (10 * rem) % n;
}
return 0;
}
ผลลัพธ์
first 7 digits of 1/9 are: 1111111