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

C ++程序可计算除n小数位

Data la coppia di valori x e y come interi positivi, il valore di n come numero di cifre decimali, il compito è generare la divisione fino a n cifre decimali

Esempio

Input-: x = 36, y = 7, n = 5
Output-: 5.14285
Input-: x = 22, y = 7, n = 10
Output-: 3.1428571428

I metodi utilizzati nel seguente programma sono i seguenti-

  • Inserisci i valori di a, b e n

  • Controlla se b è 0, allora la divisione raggiungerà l'infinito; se a è 0, il risultato sarà 0, perché qualcosa diviso per 0 è 0

  • Se n è maggiore di 1, memorizza il valore del resto, quindi sotalo dal divisore e moltiplica per dieci. Inizia la prossima iterazione

  • Stampa i risultati

Algoritmo

START
Passo 1-> dichiara la funzione per calcolare la divisione fino a n cifre decimali
   void compute_division(int a, int b, int n)
   controlla se (b == 0)
      stampa Infinito
   Fine
   controlla se a == 0
      stampa 0
   Fine
   controlla se n <= 0
      stampa a/b
   Fine
   controlla se (((a > 0) && (b < 0)) || ((a < 0) && (b > 0)))
      stampare “-”
      Impostare a = a > 0 ? a : -a
      Impostare b = b > 0 ? b : -b
   Fine
   Dichiarare e impostare int dec = a / b
   Ciclo per int i = 0 e i <= n e i++
      stampare dec
      Impostare a = a - (b * dec)
      SE(a == 0)
         break
      Fine
      Impostare a = a * 10
      impostare dec = a / b
      SE (i == 0)
         stampare “.”
      Fine
   Fine
Passo 2-> In main()
   Dichiarare e impostare int a = 36, b = 7, n = 5
   Chiamare compute_division(a, b, n)
STOP

Esempio

#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;
}

Risultato di output

5.14285