高精度算法数据结构及常用函数实现(C++)

高精度算法在各种编程题目以及实际应用中很常见,这里给出最常见的思路和一组函数实现。

结构体hp描述这个数字,成员len表示数字长度,s[]记录每一位上的数字,其实只记10个数,用int有点浪费,某些特定场合可以用char定义s[],只是相应的程序部分也必须做一些更改。

然后用最原始的办法一位一位计算得出结果。

当然这组函数只是示范思路,还不能进行复杂的数学运算,但这个基础上写出更复杂运算的函数相信并不困难^_^

高精度常用函数实现(C++)
#define maxsize 100

struct hp
{
    int len;
    int s[maxsize+1];
};


void input(hp &a,string str)
{
    int i;
    while(str[0]=='0' && str.size()!=1)
        str.erase(0,1);
    a.len=(int)str.size();
    for(i=1;i<=a.len;++i)
        a.s[i]=str[a.len-i]-48;
    for (i=a.len+1;i<=maxsize;++i)
        a.s[i]=0;
}

void print(const hp &y)
{
    int i;
    for(i=y.len;i>=1;i--)
        cout<<y.s[i];
    cout<<endl;
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值