码迷,mamicode.com
首页 > 其他好文 > 详细

高精度(综述)

时间:2020-02-24 00:51:56      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:char   etc   color   while   加法   int   getch   oid   --   

在解决一些问题时

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

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

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

加法:

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();}

就不展示例题了

 

 

 


高精度(综述)

标签:char   etc   color   while   加法   int   getch   oid   --   

原文地址:https://www.cnblogs.com/-Iris-/p/12355067.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!