C ++程序可计算除n小数位
给定x和y的值为正整数,n的值为小数位数,任务是生成除以n的小数位数。
示例
Input-: x = 36, y = 7, n = 5 Output-: 5.14285 Input-: x = 22, y = 7, n = 10 Output-: 3.1428571428
以下程序中使用的方法如下-
输入a,b和n的值
检查b是否为0,则除法将达到无穷大;如果a为0,则其结果将为0,因为某些东西被除以0为0
如果n大于1,则存储余数的值,然后将其从除数中减去,然后乘以十。开始下一个迭代
打印结果
算法
START
Step 1-> declare function to compute division upto n decimal places
void compute_division(int a, int b, int n)
check IF (b == 0)
print Infinite
End
check IF(a == 0)
print 0
End
check IF(n <= 0)
print a/b
End
check IF(((a > 0) && (b < 0)) || ((a < 0) && (b > 0)))
print “-”
set a = a > 0 ? a : -a
set b = b > 0 ? b : -b
End
Declare and set int dec = a / b
Loop For int i = 0 and i <= n and i++
print dec
Set a = a - (b * dec)
IF(a == 0)
break
End
Set a = a * 10
set dec = a / b
IF (i == 0)
print “.”
End
End
Step 2-> In main()
Declare and set int a = 36, b = 7, n = 5
Call 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