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

C ++Programm kann die n Dezimalstellen berechnen

Gegebene Werte von x und y sind positive Ganzzahlen, der Wert von n ist die Anzahl der Dezimalstellen, die dividiert werden sollen. Die Aufgabe ist, die Division durch n Dezimalstellen zu generieren.

Beispiel

Eingabe-: x = 36, y = 7, n = 5
Ausgabe-: 5.14285
Eingabe-: x = 22, y = 7, n = 10
Ausgabe-: 3.1428571428

Die in diesem Programm verwendeten Methoden sind wie folgt-

  • Gib die Werte von a, b und n ein

  • Überprüfe, ob b 0 ist, dann würde die Division unendlich groß sein; wenn a 0 ist, dann wäre das Ergebnis 0, weil etwas durch 0 geteilt 0 ist

  • Wenn n größer ist als1Speichere den Wert des Restes, dann subtractiere ihn vom Divisor, multipliziere ihn mit zehn. Beginne den nächsten Durchlauf

  • Drucke das Ergebnis aus

Algorithmus

START
Schritt 1-> Erkläre eine Funktion, um die Division bis zu n Dezimalstellen zu berechnen
   void compute_division(int a, int b, int n)
   Überprüfe, ob (b == 0)
      drucke Unendlich
   Ende
   prüfe Wenn (a == 0)
      drucke 0
   Ende
   prüfe Wenn (n <= 0)
      drucke a/b
   Ende
   prüfe Wenn (((a > 0) && (b < 0)) || ((a < 0) && (b > 0)))
      drucke "-"
      setze a = a > 0 ? a : -a
      setze b = b > 0 ? b : -b
   Ende
   Erkläre und setze int dec = a / b
   Schleife für int i = 0 und i <= n und i++
      drucke dec
      Setze a = a - (b * dec)
      Wenn (a == 0)
         break
      Ende
      Setze a = a * 10
      setze dec = a / b
      Wenn (i == 0)
         drucke "."
      Ende
   Ende
Schritt 2-> In main()
   Erkläre und setze int a = 36, b = 7, n = 5
   Rufe compute_division(a, b, n) auf
STOP

Beispiel

#include <bits/stdc++.h>
using namespace std;
void compute_division(int a, int b, int n) {
    if (b == 0) {
        cout << "Unendlich" << 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;
}

Ausgabeergebnis

5.14285