กำหนดค่า 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