#1587. 珅泽教育CSP-J第一轮模拟考第四套 第 26 题
珅泽教育CSP-J第一轮模拟考第四套 第 26 题
第2题
#include<iostream>
int main()
{
int q[2000] = {10};
int s[2000] = {0};
int size = 1;
char c;
while (std::cin >> c) {
int d = c - '0';
int r = 0;
for (int i = 0; i < size; ++i) {
r = r * 10 + q[i];
q[i] = r / 8;
r = r % 8;
}
while (r > 0) {
r = r * 10;
q[size] = r / 8;
size++;
r = r % 8;
}
for (int i = 0; i < size; ++i)
s[i] += q[i] * d;
for (int i = size; i > 0; --i) {
s[i-1] += s[i] / 10;
s[i] %= 10;
}
}
while (size > 0 and s[size-1] == 0)
size --;
for (int i = 0; i < size; ++i)
std::cout << s[i];
std::cout << "\n";
}
在循环中,语句 r = r * 10 + q[i] 的作用是( )。
{{ select(1) }}
- 将数组
q直接拼接为一个整数 - 模拟除法运算中的被除数(用于除以 )
- 计算除法的余数
- 扩展数组
q的小数部分