1.1 KiB
1.1 KiB
2、求A/B高精度值(ab)
【问题描述】
计算A/B的精确值,设A,B是以一般整数输入,计算结果精确到小数后20位(若不足20位,末尾不用补0)。
【输入样例1】
4 3
【输出样例1】
4/3=1.33333333333333333333
【输入样例2】
6 5
【输出样例2】
6/5=1.2
参考代码
#include<iostream>
#include<string>
using namespace std;
int main() {
long long A, B;
cin >> A >> B;
// 整数部分
long long int_part = A / B;
long long remainder = A % B;
// 输出格式
cout << A << "/" << B << "=" << int_part;
// 如果没有小数部分就直接结束
if (remainder == 0) {
cout << endl;
return 0;
}
// 有小数部分
cout << ".";
// 保留20位小数
int count = 0;
while (remainder != 0 && count < 20) {
remainder *= 10; // 模拟手算除法,小数点后向下除
cout << remainder / B; // 商为当前小数位
remainder %= B; // 更新余数
count++;
}
cout << endl;
return 0;
}