Upd: 加了一点除法和取模操作的细节。
This commit is contained in:
37
README.md
37
README.md
@ -12,6 +12,36 @@
|
|||||||
|
|
||||||
相应的实现应该在 `int2048.cpp` 中完成,不要在 `int2048.h` 中实现。在 OJ 提交中,需要将 `int2048.cpp` 中的实现复制到 `int2048.h` 之中,再进行提交。
|
相应的实现应该在 `int2048.cpp` 中完成,不要在 `int2048.h` 中实现。在 OJ 提交中,需要将 `int2048.cpp` 中的实现复制到 `int2048.h` 之中,再进行提交。
|
||||||
|
|
||||||
|
#### 一些额外要求
|
||||||
|
|
||||||
|
**你不需要考虑除数或模数为 0 的情况,该情况下程序的行为属于未定义行为,我们保证测试点中不会出现这样的数据。**
|
||||||
|
|
||||||
|
在我们的大整数类的实现中,对于除法操作 `x / y` ,其结果总是向下取整(即类似 python 中整除操作的表现):
|
||||||
|
|
||||||
|
```python
|
||||||
|
# 这是一段 python 代码
|
||||||
|
print(10 // 3, -10 // 3, 10 // -3, -10 // -3)
|
||||||
|
# 输出 3 -4 -4 3
|
||||||
|
# 因为 -10 / -3 = 3.333... 向下取整即为 3
|
||||||
|
# 而 10 / -3 = -3.333... 向下取整即为 -4
|
||||||
|
```
|
||||||
|
|
||||||
|
需要注意的是,C++ 中,[有符号整数的除法](https://en.cppreference.com/w/cpp/language/operator_arithmetic)是向 0 取整。
|
||||||
|
|
||||||
|
```C++
|
||||||
|
// 这是一段 C++ 代码
|
||||||
|
std::cout
|
||||||
|
<< 10 / 3 << ' '
|
||||||
|
<< 10 / -3 << ' '
|
||||||
|
<< -10 / 3 << ' '
|
||||||
|
<< -10 / -3 << '\n';
|
||||||
|
// 输出 3 -3 -3 3
|
||||||
|
// 因为 -10 / -3 = 3.333 向 0 取整即为 3
|
||||||
|
// 而 10 / -3 = -3.333... 向 0 取整即为 -3
|
||||||
|
```
|
||||||
|
|
||||||
|
而对于取模操作 `x % y` ,其被定义为 `x % y = x - (x / y) * y` 。
|
||||||
|
|
||||||
### 评分标准
|
### 评分标准
|
||||||
|
|
||||||
总分共占比 6\%
|
总分共占比 6\%
|
||||||
@ -42,11 +72,14 @@
|
|||||||
- 压位高精度加、减、乘法 20\%
|
- 压位高精度加、减、乘法 20\%
|
||||||
- 压位高精度除法(二分加速试商) 15\%
|
- 压位高精度除法(二分加速试商) 15\%
|
||||||
- 压位快速高精度乘法(快速傅立叶变换) 20\%
|
- 压位快速高精度乘法(快速傅立叶变换) 20\%
|
||||||
- BONUS:压位快速高精度除法(分治除法)3\%
|
- BONUS:压位快速高精度除法(分治除法/牛顿迭代法) 5\%
|
||||||
- BONUS:压位快速高精度除法(牛顿迭代法) 5\%
|
|
||||||
|
|
||||||
PS:Bonus 部分对代码性能也有要求,需要通过对应的测试数据点才能得到分数。且 Bonus 上限为 5\%,超过不溢出。
|
PS:Bonus 部分对代码性能也有要求,需要通过对应的测试数据点才能得到分数。且 Bonus 上限为 5\%,超过不溢出。
|
||||||
|
|
||||||
|
如果你写了 BONUS 的除法并且通过了对应的测试点,那么你将不再需要实现二分加速试商除法。
|
||||||
|
|
||||||
|
<!-- 对于 A 班同学,需要特别注意的是,你的 int2048 将会在之后的大作业 python 解释器中被使用。请务必保证你的代码有足够的健壮性,能够应对各种极端情况。-->
|
||||||
|
|
||||||
### 数据范围
|
### 数据范围
|
||||||
|
|
||||||
参考具体题目。
|
参考具体题目。
|
||||||
|
Reference in New Issue
Block a user