gpt4 book ai didi

c++ - 使用 GMP.h 头文件时的返回类型

转载 作者:太空狗 更新时间:2023-10-29 20:07:25 26 4
gpt4 key购买 nike

当我使用 gmp.h 头文件时。我需要一个接受 mpz_t 类型输入并返回 mpz_t 类型的函数。我是使用 gmp.h 的新手所以,这是我处理的代码的快照...

mpz_t sum_upto(mpz_t max)  
{
mpz_t sum;
mpz_init(sum);
mpz_init(result);
for(int i=0;i<=max-1;i++)
mpz_add_ui(sum,sum,pow(2,i));
return sum;
}

但是会报错:

  1. pow 未在此范围内使用。",尽管我在文件的最开头添加了 math.h。
  2. sum_upto 声明为返回数组的函数...

最佳答案

可以在 manual 中找到使用 GMP 的函数约定。从本质上讲,您必须遵循与 GMP 本身相同的约定 - 函数必须具有 void 返回类型,并且您必须提供一个值以将结果作为参数放入其中。

下面是给出的例子:

 void foo (mpz_t result, const mpz_t param, unsigned long n)
{
unsigned long i;
mpz_mul_ui (result, param, n);
for (i = 1; i < n; i++)
mpz_add_ui (result, result, i*7);
}

int main (void)
{
mpz_t r, n;
mpz_init (r);
mpz_init_set_str (n, "123456", 0);
foo (r, n, 20L);
gmp_printf ("%Zd\n", r);
return 0;
}

关于c++ - 使用 GMP.h 头文件时的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2985576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com