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

โปรแกรม C++ คำนวณการหารจนถึงตำแหน่งทศนิยมที่ n

กำหนดค่า x และ y เป็นจำนวนเต็มบวก พร้อมค่า n สำหรับจำนวนตำแหน่งทศนิยม งานคือการสร้างผลลัพธ์การหารจนถึง n ตำแหน่งทศนิยม

ตัวอย่าง

Input: x = 36, y = 7, n = 5 Output: 5.14285
Input: x = 22, y = 7, n = 10 Output: 3.1428571428

วิธีการที่ใช้ในโปรแกรมด้านล่าง −

  • รับค่า a, b และ n
  • ตรวจสอบถ้า b เป็น 0 การหารจะเป็นอนันต์ และถ้า a เป็น 0 ผลลัพธ์จะเป็น 0
  • ถ้า n มากกว่า 1 ให้เก็บค่าที่เหลือและลบออกจากตัวตั้ง คูณผลลัพธ์ด้วย 10 เริ่มรอบถัดไป
  • พิมพ์ผลลัพธ์

อัลกอริทึม

START
Step 1 → ประกาศฟังก์ชันคำนวณการหารจนถึง n ตำแหน่งทศนิยม
  void compute_division(int a, int b, int n)
  ตรวจสอบ IF (b == 0)
    พิมพ์ "Infinite"
  End
  ตรวจสอบ IF(a == 0)
    พิมพ์ 0
  End
  ตรวจสอบ IF(n <= 0)
    พิมพ์ a/b
  End
  ตรวจสอบ IF(((a > 0) && (b < 0)) || ((a < 0) && (b > 0)))
    พิมพ์ "-"
    ตั้งค่า a = a > 0 ? a : -a
    ตั้งค่า b = b > 0 ? b : -b
  End
  ประกาศและกำหนด int dec = a / b
  ลูป For int i = 0 และ i <= n และ i++
    พิมพ์ dec
    ตั้งค่า a = a - (b * dec)
    IF(a == 0)
      break
    End
    ตั้งค่า a = a * 10
    ตั้งค่า dec = a / b
    IF (i == 0)
      พิมพ์ "."
    End
  End
Step 2 → ใน main()
  ประกาศและกำหนด int a = 36, b = 7, n = 5
  เรียก compute_division(a, b, n)
STOP

ตัวอย่างโค้ด

#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; 
}

ผลลัพธ์

5.14285