⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmppi.cpp

📁 这是数学计算上常用的计算方法
💻 CPP
字号:
#include <iostream>
#include <iomanip>
#include <cmath>
#include "nr.h"
using namespace std;

// Driver for mp routines

void mpsqr2(const int np)
{
        const unsigned int IAOFF=48,MACC=2;
        int j,n;
        string s;

        n=np+MACC;
        Vec_UCHR x(n),y(n),t(n);
        Vec_UCHR q(n),r(n);
        t[0]=2;
        for (j=1;j<n;j++) t[j]=0;
        NR::mpsqrt(x,x,t);
        NR::mpmov(y,x);
        cout << endl << "sqrt(2)   = ";
        s = y[0]+IAOFF;
        s += '.';
        // caution: next step is N**2. omit it for large N
        NR::mp2dfr(y,s);
        s.erase(2.408*np,s.length());
        cout << setw(64) << left << s << endl;
        cout << endl << "2-sqrt(2) = ";
        // Calculate this the hard way to exercise the mpdiv function
        NR::mpdiv(q,r,t,x);
        s = r[0]+IAOFF;
        s += '.';
        // caution: next step is N**2. omit it for large N
        NR::mp2dfr(r,s);
        s.erase(2.408*np,s.length());
        cout << setw(64) << left << s << endl;
}

int main(void)
{
        int n;

        for (;;) {
          cout << endl << "Input n (or n=0 to end):" << endl;
          cin >> n;
          if (n <= 0) break;
          mpsqr2(n);
          NR::mppi(n);
        }
        cout << "Normal completion" << endl;
        return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -