zoukankan      html  css  js  c++  java
  • 高精度(综述)

    在解决一些问题时

    常常出现精度太高,而编译错误

    高精度算法能够解决精度问题

    使用高精度算法的核心算法

    加法:

    c[i]=a[i]+b[i];
    if(c[i]>=10){c[i]%=10;++c[i+1];}

    减法:

    if(a[i]<b[i]) {--a[i+1];a[i]+=10;}
    c[i]=a[i]-b[i];

    乘法:

    c[i+j-1]=a[i]*b[j]+c[i+j-1];
    x=c[i+j-1]/10;
    c[i+j-1]%=10;

    预处理时,需要字符串方式输入,利于字符串函数与操作运算

    void init(int a[])
    {
        string s;
        cin>>s;
        len=s.length();
        for(i=1;i<=len;i++)
            a[i]=s[len-i]-'0';
    }

    顺便在这里也说一下吧

    经常在题解里看到一种东西叫“快读”,与这个字符串输入有很大相似

    void read(int &x)
    {
        char c=getchar();x=0;
        while(c<'0'||c>'9') c=getchar();
        while(c<='9'&&c>='0'){ x=x*10+c-48;c=getchar();}

    就不展示例题了

    
    
  • 相关阅读:
    自定义函数
    内置函数
    炸裂函数explode
    -bash:ls:command not found,执行命令总是报找不到
    函数
    C#的lock用法
    获取客户端Ip地址方法
    Grunt基础
    常用Sql
    HandleBars
  • 原文地址:https://www.cnblogs.com/-Iris-/p/12355067.html
Copyright © 2011-2022 走看看