Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

소수점 이하 n자리까지 나누기를 계산하는 C++ 프로그램

<시간/>

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