x 및 y 값을 양의 정수로 지정하고 소수점 이하 자릿수에 대해 n 값을 지정하고 작업은 소수점 n자리까지 나누기를 생성하는 것입니다.
예시
Input-: x = 36, y = 7, n = 5 Output-: 5.14285 Input-: x = 22, y = 7, n = 10 Output-: 3.1428571428
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다. -
- , b, n 값 입력
- 나눗셈이 무한대로 진행되는 것보다 b가 0인지 확인하고 a가 0이면 결과가 0보다 0으로 나눗셈이 0이 되는지 확인
- n이 1보다 크면 나머지 값을 저장하고 피제수에서 뺀 후 결과에 10을 곱합니다. 다음 반복 시작
- 결과 인쇄
알고리즘
START Step 1-> declare function to compute division upto n decimal places void compute_division(int a, int b, int n) check IF (b == 0) print Infinite End check IF(a == 0) print 0 End check IF(n <= 0) print a/b End check IF(((a > 0) && (b < 0)) || ((a < 0) && (b > 0))) print “-” set a = a > 0 ? a : -a set b = b > 0 ? b : -b End Declare and set int dec = a / b Loop For int i = 0 and i <= n and i++ print dec Set a = a - (b * dec) IF(a == 0) break End Set a = a * 10 set dec = a / b IF (i == 0) print “.” End End Step 2-> In main() Declare and set int a = 36, b = 7, n = 5 Call 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