#1545. 珅泽教育CSP-J第一轮模拟考第三套 第 29 题
珅泽教育CSP-J第一轮模拟考第三套 第 29 题
第三题
#include<iostream>
int mem[2000000] = {0};
int q[2000000] = {0};
int main()
{
int r, b;
std::cin >> r >> b;
int step = 0;
while (r != 0) {
step++;
if (mem[r] > 0) {
break;
}
else {
mem[r] = step;
}
q[step] = r * 2 / b;
r = r * 2 % b;
}
std::cout << "0.";
if (r == 0) {
for (int i = 1; i <= step; ++i) std::cout << q[i];
}
else {
int begin = mem[r];
for (int i = 1; i < begin; ++i)
std::cout << q[i];
std::cout << "(";
for (int i = begin; i < step; ++i)
std::cout << q[i];
std::cout << ")";
}
}
对于任意输入 r 和 b(),程序输出结果中,小数点后的位数不超过 。
{{ select(1) }}
- 正确
- 错误