English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Программа на C ++ для вычисления значений с n знаками после запятой

Дано x и y как положительные целые числа, n как количество десятичных знаков, задача - сгенерировать деление на n десятичных знаков

Пример

Вход-: x = 36, y = 7, n = 5
Вывод-: 5.14285
Вход-: x = 22, y = 7, n = 10
Вывод-: 3.1428571428

Методы, используемые в следующей программе, таковы-

  • Ввести значения a, b и n

  • Проверить, если b равно 0, то деление将达到 бесконечность; если a равно 0, то результат будет равен 0, потому что что-то делится на 0 равно 0

  • Если n больше 1, то хранить значение остатка, затем вычесть его из делителя, затем умножить на десять. Начать следующий итерацию

  • Вывести результат

Алгоритм

START
Шаг 1-> объявить функцию для вычисления деления до n десятичных знаков
   void compute_division(int a, int b, int n)
   Проверить, если b == 0
      вывести Непредельное
   End
   Проверить, если a == 0
      вывести 0
   End
   Проверить, если n <= 0
      вывести a/b
   End
   Проверить, если ((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
Вам может понравиться