English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
لدينا x و y كعددين صحيحين، قيمة n كعدد من الأرقام العشرية، المهمة هي توليد القسمة حتى نقط عشريات n
الإدخال-: x = 36, y = 7, n = 5 الناتج-: 5.14285 الإدخال-: x = 22, y = 7, n = 10 الناتج-: 3.1428571428
الطريقة المستخدمة في البرنامج التالي هي-
ادخل قيم a، b و n
تحقق من whether b هو 0، فإن القسمة ستكون لا نهائية؛ إذا كان a هو 0، فإن النتيجة ستكون 0، لأن بعض الأشياء مقسمة على 0 هي 0
إذا كان n أكبر من 1، فحفظ قيمة البقية، ثم أزالة من الموزع، ثم ضربه بالعشرة. بدء التكرار التالي
اطبع النتيجة
البداية الخطوة 1-> إعلان وظيفة لحساب القسمة حتى نقط عشريات n void compute_division(int a, int b, int n) تحقق من IF(b == 0) اطبع Infinite نهاية تحقق من IF(a == 0) اطبع 0 نهاية تحقق من IF(n <= 0) اطبع a/b نهاية تحقق من IF(((a > 0) && (b < 0)) || ((a < 0) && (b > 0))) اطبع "-" تعيين a = a > 0 ? a : -a تعيين b = b > 0 ? b : -b نهاية إعلان وتعيين int dec = a / b دائرة مغلقة للوصول إلى int i = 0 وi <= n وi++ اطبع dec تعيين a = a - (b * dec) إذا (a == 0) قطع نهاية تعيين a = a * 10 تعيين dec = a / b إذا (i == 0) اطبع "." نهاية نهاية الخطوة 2-> داخل fun_main() إعلان وتعيين int a = 36, b = 7, n = 5 اطبق compute_division(a, b, n) توقف
#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