Dados 3 números x, y y n calcula la división (x/y) hasta n decimales.
Ejemplos:
Input : x = 22, y = 7, n = 10 Output : 3.1428571428 Explanation : Since n = 10, division (x / y) is taken till 10 decimal places. Input : x = 22, y = 7, n = 20 Output : 3.14285714285714285714
Acercarse :
- Obtenga el resto y réstelo por el dividendo, multiplíquelo por diez y pase a la siguiente iteración.
- Si alcanzamos el resultado completo, es posible que no necesitemos continuar hasta que se alcance el número predefinido de iteraciones.
C++
// CPP program to compute division upto n // decimal places. #include <bits/stdc++.h> using namespace std; void precisionCompute(int x, int y, int n) { // Base cases if (y == 0) { cout << "Infinite" << endl; return; } if (x == 0) { cout << 0 << endl; return; } if (n <= 0) { // Since n <= 0, don't compute after // the decimal cout << x / y << endl; return; } // Handling negative numbers if (((x > 0) && (y < 0)) || ((x < 0) && (y > 0))) { cout << "-"; x = x > 0 ? x : -x; y = y > 0 ? y : -y; } // Integral division int d = x / y; // Now one by print digits after dot // using school division method. for (int i = 0; i <= n; i++) { cout << d; x = x - (y * d); if (x == 0) break; x = x * 10; d = x / y; if (i == 0) cout << "."; } } // Driver Program int main() { int x = 22, y = 7, n = 15; precisionCompute(x, y, n); return 0; }
Java
// Java program to compute division upto n // decimal places. import java.util.*; class Eulerian { public static void precisionCompute(int x, int y, int n) { // Base cases if (y == 0) { System.out.print("Infinite"); return; } if (x == 0) { System.out.print("0"); return; } if (n <= 0) { // Since n <= 0, don't compute after // the decimal System.out.print(x / y); return; } // Handling negative numbers if (((x > 0) && (y < 0)) || ((x < 0) && (y > 0))) { System.out.print("-"); x = x > 0 ? x : -x; y = y > 0 ? y : -y; } // Integral division int d = x / y; // Now one by print digits after dot // using school division method. for (int i = 0; i <= n; i++) { System.out.print(d); x = x - (y * d); if (x == 0) break; x = x * 10; d = x / y; if (i == 0) System.out.print("."); } } public static void main(String[] args) { int x = 22, y = 7, n = 15; precisionCompute(x, y, n); } } // This code is contributed by rishabh_jain
C#
// C# program to compute division // upto n decimal places. using System; class Eulerian { public static void precisionCompute(int x, int y, int n) { // Base cases if (y == 0) { Console.WriteLine("Infinite"); return; } if (x == 0) { Console.WriteLine("0"); return; } if (n <= 0) { // Since n <= 0, don't compute after // the decimal Console.WriteLine(x / y); return; } // Handling negative numbers if (((x > 0) && (y < 0)) || ((x < 0) && (y > 0))) { Console.WriteLine("-"); x = x > 0 ? x : -x; y = y > 0 ? y : -y; } // Integral division int d = x / y; // Now one by print digits after dot // using school division method. for (int i = 0; i <= n; i++) { Console.Write(d); x = x - (y * d); if (x == 0) break; x = x * 10; d = x / y; if (i == 0) Console.Write("."); } } // Driver code public static void Main() { int x = 22, y = 7, n = 15; precisionCompute(x, y, n); } } // This code is contributed by vt_m
PHP
<?php // PHP program to compute // division upto n decimal // places. function precisionCompute($x, $y, $n) { // Base cases if ($y == 0) { echo "Infinite", "\n"; return; } if ($x == 0) { echo 0, "\n"; return; } if ($n <= 0) { // Since n <= 0, don't // compute after the decimal echo $x / $y, "\n"; return; } // Handling negative numbers if ((($x > 0) && ($y < 0)) || (($x < 0) && ($y > 0))) { echo "-"; $x = $x > 0 ? $x : -$x; $y = $y > 0 ? $y : -$y; } // Integral division $d = $x / $y; // Now one by print digits after dot // using school division method. for ($i = 0; $i <= $n; $i++) { echo $d; $x = $x - ($y * $d); if ($x == 0) break; $x = $x * 10; $d = $x / $y; if ($i == 0) echo "."; } } // Driver Code $x = 22; $y = 7; $n = 15; precisionCompute($x, $y, $n); // This code is contributed by aj_36 ?>
Python3
# Python3 program to compute # division upto n decimal places. def precisionCompute(x, y, n): # Base cases if y == 0: print("Infinite"); return; if x == 0: print(0); return; if n <= 0: # Since n <= 0, don't # compute after the decimal print(x / y); return; # Handling negative numbers if (((x > 0) and (y < 0)) or ((x < 0) and (y > 0))): print("-", end = ""); if x < 0: x = -x; if y < 0: y = -y; # Integral division d = x / y; # Now one by print digits # after dot using school # division method. for i in range(0, n + 1): print(d); x = x - (y * d); if x == 0: break; x = x * 10; d = x / y; if (i == 0): print(".", end = ""); # Driver Code x = 22; y = 7; n = 15; precisionCompute(x, y, n); # This code is contributed by mits
Javascript
<script> // JavaScript program to compute division upto n // decimal places. function precisionCompute(x, y, n) { // Base cases if (y == 0) { document.write("Infinite"); return; } if (x == 0) { document.write("0"); return; } if (n <= 0) { // Since n <= 0, don't compute after // the decimal document.write(x / y); return; } // Handling negative numbers if (((x > 0) && (y < 0)) || ((x < 0) && (y > 0))) { document.write("-"); x = x > 0 ? x : -x; y = y > 0 ? y : -y; } // Integral division let d = x / y; // Now one by print digits after dot // using school division method. for (let i = 0; i <= n; i++) { document.write(d); x = x - (y * d); if (x == 0) break; x = x * 10; d = x / y; if (i == 0) document.write("."); } } // Driver code let x = 22, y = 7, n = 15; precisionCompute(x, y, n); </script>
Producción :
3.142857142857142