Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
L=ceil((sqrt(v-4*N)-1)/4)-1
其中 V 和 N 是 mpz_class 变量。
出于某种原因,这会引发一个错误,打开 gmpxx.h 并且有问题
inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr<mpz_t, T> &expr) { expr.eval(z); }
我该如何正确地做这个天花板?
我不熟悉 C++ 接口,但我认为 mpz_class 变量的 sqrt() 将返回 mpz_class 结果。将 ceil() 应用于整数是没有意义的。您将需要使用 mpf_class 从 sqrt() 获取浮点结果,然后 ceil() 应该可以工作(但返回一个 mpf_class)。