高精度加法(重载运算符)
来源:互联网 发布:抢牛牛开挂神器软件 编辑:程序博客网 时间:2024/05/09 23:27
求A+B
高精度加法(重载运算符版),在网上有很多写法,表示不能很清楚的明白其内容,这里给出一份c语言的简单版本,便于学习理解。
#include <stdio.h>#include <string.h>#define max(a,b) ((a)>(b)?(a):(b))struct Data{ int a[100001], len; Data()//初始值 { memset(a, 0, sizeof(a)); len = 1; } Data operator + (const Data &A)const { Data B; B.len = max(len, A.len); for(int i = 0 ; i < B.len; i++)//边界需要注意 { B.a[i] += A.a[i]+a[i]; if(B.a[i] >= 10) { B.a[i] -= 10;//由于不会超过10,故用 -=10 代替 %10 效率更高 B.a[i+1]++;//进位 } } if(B.a[B.len])//考虑是否会进到B.len的下一位 B.len++; return B; } void read()//读入函数 { char d[100001]; scanf("%s",d); int l=strlen(d); for(int i=0; i<l; i++) a[i]=d[l-i-1]-'0'; len=l; } void write()//输出函数 { for(int i = len-1; i>=0; i--) printf("%d", a[i]); }};Data A,B,C;int main(){ A.read(); B.read(); C = A+B;//在进行Data之间的计算时可直接使用‘+’,原来int之间的加法运算不会被改变 C.write(); return 0;}
0 0
- 高精度加法(重载运算符)
- 高精度运算(运算符重载)
- 运算符重载加法(双目)
- 运算符重载加法(单目)
- 高精度之重载运算符
- 高精度重载运算符模板
- HDU 1002 (高精度加法运算)
- 高精度计算----加法运算
- 高精度运算 大数加法
- 高精度运算之加法
- 高精度加法运算
- 高精度加法运算~
- 高精度总结(高精度类和重载运算高精度阶乘)
- 运算符的重载(分数的加法)
- 【c++程序】重载加法运算符operator+
- 运算符重载简单加法a+b
- 运算符重载-复数的加法
- 高精度重载运算符的C++代码
- LeetCode 396. Rotate Function
- 浏览器怪异模式和标准模式之间的区别 DTD
- 杭电OJ编码1001
- Java抽象类 详解
- 心得
- 高精度加法(重载运算符)
- 如何自定义已有架构的css样式
- 请使用-Xlint:deprecation重新编译
- leetcode-014-Longest Common Prefix
- LA2191&UVA12086树状数组
- UVA10082
- Codeforces 721C. Journey
- [心得]二叉树的三种遍历
- yii框架安装及环境配置!!!