-1

我有这样的代码(从维基复制粘贴)。它乘以你在代码中看到的那些大数字。我的 gmp 版本是 5.0.5。

#include <stdio.h>
#include <gmp.h>

int main() {
    mpz_t x;
    mpz_t y;
    mpz_t result;

    mpz_init(x);
    mpz_init(y);
    mpz_init(result);

    mpz_set_str(x, "762323423423423443534512034534534534558254738945", 10);
    mpz_set_str(y, "92635911345345345345234534534534567767i888439081", 10);

    mpz_mul(result, x, y);
    gmp_printf("%Zd\n", result);

    mpz_clear(x);
    mpz_clear(y);
    mpz_clear(result);

    return 0;
}

结果是.. 0。为什么?

4

1 回答 1

3

起初它看起来很好,所以我不得不自己运行它并打印出你的另外两个变量。

y设置为 0,因为您的号码中间有一个字母“i”,所以它无法解析它。

于 2012-07-05T13:15:45.283 回答