• 大数库GMP测试


    1. 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务
    2. 用自己8位学号建两个文件夹xxxxxxxxsrc,xxxxxxxx,到GMP官网https://gmplib.org/下载最新代码到201x1xxxsrc,编译代码并把GMP库安装到201x1xxx文件夹。(5')
    3. 基于GMP的大数库编写测试代码测试大数运算,计算2的N次方,N为你学号的后四位(5‘)
    4. 基于GMP的大数库计算你以及前面5位同学和后面5位同学的8位学号的乘积,N为你学号的后四位(5‘)
    5. 提交代码(或代码链接)和运行结果截图

    环境配置

    ···
    ./configure --enable-cxx
    make
    make check //注意必须检测一下,gmp官方特别提醒
    sudo make install
    ···

    C++环境中:
    ·g++ test.c -o test -lgmp·
    C语言环境中:
    ·gcc -i头文件 -L库目录 -l库名·

    2的1210次方

    #include <iostream>
    #include <gmpxx.h>
    using namespace std;
    
    int main()
    {
            mpz_t a,b,c;
            mpz_init_set_str(a,"2",10);
            mpz_init_set_str(b,"2",10);
            for(int i=0;i<=1209;i++)
            {
                    mpz_mul(b,b,a);
            }
            gmp_printf("%Zd\n",b);
            mpz_clear(a);
            mpz_clear(b);
            return 0;
    }
    

    11大数连乘

    #include <gmp.h>
    #include <string.h>
    int main(int argc, const char *argv[])
    {
        mpz_t z_r, z_1210, z_1;
        mpz_init_set_str(z_r, "1", 10);
        mpz_init_set_str(z_1210, "1205", 10);
        mpz_init_set_str(z_1, "1", 10);
        int i;
        for (i = 1210; i <= 1220; i++)
        {
            mpz_mul(z_r, z_r, z_1210);
            mpz_add(z_1210,z_1210,z_1);
        }
        gmp_printf("%Zd\n",z_r);
        mpz_clear(z_r);
        mpz_clear(z_1210);
        mpz_clear(z_1);
        getchar();
        return 0;
    }
    

  • 相关阅读:
    jsp中的contentType与pageEncoding的区别和作用
    HashMap实现原理及源码分析
    JAVA使用urlrewrite实现伪静态化
    java动态代理(JDK和cglib)
    Codeforces 1201D. Treasure Hunting
    Codeforces 1201C. Maximum Median
    Codeforces 1229C. Konrad and Company Evaluation
    Codeforces 1229B. Kamil and Making a Stream
    Codeforces 1229A. Marcin and Training Camp
    P1315 观光公交
  • 原文地址:https://www.cnblogs.com/pogbar/p/16224827.html
Copyright © 2020-2023  润新知