- 高精度整数除法
问题描述
求 a/b 的结果。
已知 a,b 为 108范围内的非负整数,求 a/b 保留前 n 位小数商的结果。
输入
读入三个整数
a b n。
输出
输出一行数字。
样例
输入
97 61 50
输出
1.59016393442622950819672131147540983606557377049180
编辑代码
语言C++
问题描述
求 a/b 的结果。
已知 a,b 为 108范围内的非负整数,求 a/b 保留前 n 位小数商的结果。
输入
读入三个整数
a b n。
输出
输出一行数字。
样例
输入
97 61 50
输出
1.59016393442622950819672131147540983606557377049180
编辑代码
语言C++
我也在学Y2, 代码:
#include <iostream>
#include <string>
#include <algorithm>
std::string highPrecisionDivision(int a, int b, int n) {
std::string result = std::to_string(a / b) + "."; // 整数部分
a %= b; // 取余数
for (int i = 0; i < n; ++i) {
a *= 10; // 余数乘以10
result += std::to_string(a / b); // 添加商到结果
a %= b; // 更新余数
}
return result;
}
int main() {
int a, b, n;
std::cin >> a >> b >> n;
std::string result = highPrecisionDivision(a, b, n);
std::cout << result << std::endl;
return 0;
}