c语言大整数加减乘除幂运算程序
时间: 2023-08-24 17:06:30 浏览: 229
在C语言中,可以使用GMP库来实现大整数加减乘除幂运算。下面是一个示例程序,演示了如何使用GMP库进行大整数运算:
``` c
#include <stdio.h>
#include <gmp.h>
int main() {
mpz_t a, b, c, d, e, f;
mpz_init(a);
mpz_init(b);
mpz_init(c);
mpz_init(d);
mpz_init(e);
mpz_init(f);
// 加法
mpz_set_str(a, "123456789012345678901234567890", 10);
mpz_set_str(b, "987654321098765432109876543210", 10);
mpz_add(c, a, b);
gmp_printf("a + b = %Zd\n", c);
// 减法
mpz_set_str(a, "123456789012345678901234567890", 10);
mpz_set_str(b, "987654321098765432109876543210", 10);
mpz_sub(c, a, b);
gmp_printf("a - b = %Zd\n", c);
// 乘法
mpz_set_str(a, "123456789012345678901234567890", 10);
mpz_set_str(b, "987654321098765432109876543210", 10);
mpz_mul(c, a, b);
gmp_printf("a * b = %Zd\n", c);
// 除法
mpz_set_str(a, "123456789012345678901234567890", 10);
mpz_set_str(b, "987654321098765432109876543210", 10);
mpz_tdiv_q(c, a, b);
gmp_printf("a / b = %Zd\n", c);
// 幂运算
mpz_set_str(a, "123456789012345678901234567890", 10);
mpz_set_ui(b, 10);
mpz_pow_ui(c, a, 2);
gmp_printf("a^2 = %Zd\n", c);
mpz_clear(a);
mpz_clear(b);
mpz_clear(c);
mpz_clear(d);
mpz_clear(e);
mpz_clear(f);
return 0;
}
```
在这个示例程序中,我们分别演示了加法、减法、乘法、除法和幂运算。在每个运算中,我们都使用了`mpz_set_str`函数将字符串转换为大整数,使用相应的GMP库函数进行运算,最后使用`gmp_printf`函数输出结果。
需要注意的是,由于大整数运算需要分配大量的内存空间,因此在使用完毕后,需要使用`mpz_clear`函数释放这些内存空间。
阅读全文