Upd: 小修改了一点。统一了格式,并且允许一定程度上修改接口。

This commit is contained in:
DarkSharpness_XzY
2023-10-20 22:05:13 +08:00
parent bb248f7e49
commit 572073ac6a

View File

@ -8,13 +8,15 @@
要求实现一个 C++ 的大整数类,命名为 `int2048` 要求实现一个 C++ 的大整数类,命名为 `int2048`
接口已在 `int2048.h` 中给出,你需要新建一个 `int2048.cpp` 文件,在其中实现给定的接口。 接口已在 `int2048.h` 中给出,你需要新建一个 `int2048.cpp` 文件,在其中实现给定的接口。
当然,你也可以在**兼容当前所有接口**的基础之上,自己添加新的接口或修改原有接口(例如实现 `swap` 函数、右值构造函数)。
相应的实现应该在 `int2048.cpp` 中完成,不要在 `int2048.h` 中实现。在 OJ 提交中,需要将 `int2048.cpp` 中的实现复制到 `int2048.h` 之中,再进行提交。 相应的实现应该在 `int2048.cpp` 中完成,不要在 `int2048.h` 中实现。在 OJ 提交中,需要将 `int2048.cpp` 中的实现复制到 `int2048.h` 之中,再进行提交。
#### 一些额外要求 #### 一些特殊要求
**你不需要考虑除数或模数为 0 的情况该情况下程序的行为属于未定义行为我们保证测试点中不会出现这样的数据。** **你不需要考虑除数或模数为 0 的情况。在该情况下程序的行为属于未定义行为我们保证测试点中不会出现这样的数据。**
在我们的大整数类的实现中,对于除法操作 `x / y` ,其结果总是向下取整(即类似 python 中整除操作的表现): 在我们的大整数类的实现中,对于除法操作 `x / y` ,其结果总是向下取整(即类似 python 中整除操作的表现):
@ -74,9 +76,9 @@ std::cout
- 压位快速高精度乘法(快速傅立叶变换) 20\% - 压位快速高精度乘法(快速傅立叶变换) 20\%
- BONUS压位快速高精度除法分治除法/牛顿迭代法) 5\% - BONUS压位快速高精度除法分治除法/牛顿迭代法) 5\%
PSBonus 部分对代码性能也有要求,需要通过对应的测试数据点才能得到分数。且 Bonus 上限为 5\%,超过不溢出。 PSBONUS 部分对代码性能也有要求,需要通过对应的测试数据点才能得到分数。且 BONUS 上限为 5\%,超过不溢出。
如果你写了 BONUS 的除法并且通过了对应的测试点,那么你将不需要实现二分加速试商除法。 如果你写了 BONUS 的除法并且通过了对应的测试点,那么你将不需要实现二分加速试商除法。
<!-- 对于 A 班同学,需要特别注意的是,你的 int2048 将会在之后的大作业 python 解释器中被使用。请务必保证你的代码有足够的健壮性,能够应对各种极端情况。--> <!-- 对于 A 班同学,需要特别注意的是,你的 int2048 将会在之后的大作业 python 解释器中被使用。请务必保证你的代码有足够的健壮性,能够应对各种极端情况。-->