Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

พิมพ์ k หลักแรกของ 1/n โดยไม่ใช้ floating point ในภาษา C

หา k ตัวเลขทศนิยมแรกของ 1/n โดยไม่ใช้ตัวแปรชนิด floating point ใช้หลักการหารยาว (long division) แบบจำนวนเต็ม

อัลกอริทึม

  1. กำหนด remainder = 1
  2. วนลูป 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