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

C ++Programa puede calcular división de n decimales

Dado que x e y son enteros positivos, el valor de n es el número de lugares decimales, la tarea es generar la división hasta el número de lugares decimales n.

示例

Entrada-, x = 36, y = 7, n = 5
Salida-: 5.14285
Entrada-, x = 22, y = 7, n = 10
Salida-: 3.1428571428

los métodos utilizados en el siguiente programa son los siguientes-

  • ingresar los valores de a, b y n

  • comprueba si b es 0, entonces la división será infinita; si a es 0, su resultado será 0, porque algo dividido por 0 es 0

  • si n es mayor que1almacenar el valor del residuo, luego restarlo del divisor, luego multiplicarlo por diez. Comienza la siguiente iteración

  • imprimir el resultado

algoritmo

INICIO
Paso 1-declarar una función para calcular la división hasta n lugares decimales
   void calcular_division(int a, int b, int n)
   comprueba si (b == 0)
      imprimir "Infinito"
   Final
   verificar SI (a == 0)
      imprimir 0
   Final
   verificar SI (n <= 0)
      imprimir a/b
   Final
   verificar SI (((a > 0) && (b < 0)) || ((a < 0) && (b > 0)))
      imprimir "-"
      establecer a = a > 0 ? a : -a
      establecer b = b > 0 ? b : -b
   Final
   Declarar y establecer int dec = a / b
   Bucle para int i = 0 y i <= n y i++
      imprimir dec
      Establecer a = a - (b * dec)
      SI (a == 0)
         break
      Final
      Establecer a = a * 10
      establecer dec = a / b
      SI (i == 0)
         imprimir "."
      Final
   Final
Paso 2-> En main()
   Declarar y establecer int a = 36, b = 7, n = 5
   Llame 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