(模板)c++ 大数(正数加减乘除)
来源:互联网 发布:淘宝没发货退款要多久 编辑:程序博客网 时间:2024/06/04 18:37
char ip[mxn];struct bign { int len, dig[mxn]; bign() { len = 0, dig[0] = 0; }bool input() { if(scanf("%s", ip) == EOF) return 0; if(strcmp(ip, "0") == 0) { len = 0, dig[0] = 0; return 1; } int n = strlen(ip); for( int i = 0; i < n; ++i ) dig[i] = ip[n-i-1] - '0'; len = n - 1; return 1; } void output() { for(int i = len; i >= 0; --i) printf("%d", dig[i]); } bign operator + (const bign &b) const { int i, carry; bign c; for(i = carry = 0; i <= len || i <= b.len || carry; ++i) { if(i <= len) carry += dig[i]; if(i <= b.len) carry += b.dig[i]; c.dig[i] = carry % 10;carry /= 10; } c.len = i - 1; return c; } bign operator + (const int &k) const { int i, b = k; bign c; for(i = 0; i <= len || b; ++i) { if(i <= len) b += dig[i]; c.dig[i] = b % 10; b /= 10; } c.len = i - 1; return c; } bign operator * (const int &k) const { int i, carry, b = k; bign c; for(i = carry = 0;i <= len || carry; ++i) { if( i <= len ) carry += b * dig[i]; c.dig[i] = carry % 10; carry /= 10; } i--; while(i && !c.dig[i]) --i; c.len = i; return c; } bign operator * (const bign &b) const { int i, j, carry; bign c; for(i = len + b.len + 1; i >= 0; -- i) c.dig[i] = 0; for(i = 0; i <= len; ++i) { carry = 0; for(j = 0; j <= b.len || carry; ++j) { carry += c.dig[i+j]; if(j <= b.len) carry += dig[i] * b.dig[j]; c.dig[i+j] = carry % 10; carry /= 10; } } i = len + b.len + 1; while(i && !c.dig[i]) --i; c.len = i; return c; }};//c为商, d为余数void div(bign a, int b, bign &c, int &d) { int i; for(i = a.len, d = 0; i >= 0; --i) { d = d * 10 + a.dig[i]; c.dig[i] = d / b; d = d % b; } i = a.len; while( i && !c.dig[i] ) -- i; c.len = i;}
0 0
- (模板)c++ 大数(正数加减乘除)
- 大数高精度加减乘除模板
- 大数的运算(加减乘除)C代码
- C语言 大数加减乘除
- c语言版大数计算器(实现大数的加减乘除运算)
- hdu 4927 Series 1 (大数模板加减乘除)
- 大数运算(加减乘除)
- 大数运算(加减乘除)
- 大数的加减乘除运算(C++)
- uva 10494(大数加减乘除取余一条龙模板代码) uva 10023 (大数开方)
- 大数模板(加减乘除取模开方)
- 大数的乘法(正数)
- 大数运算(加减乘除模)
- 完全正负大数模板(正负数加减乘除求模运算)~~~~~
- 大数加减乘除
- 大数加减乘除
- 大数加减乘除
- 大数加减乘除
- Frogger poj 2253 floyd
- 螺旋队列的另一种解法
- android 在 button、textview等控件按下和选中的时候改变颜色或图片实现方法
- 韩语学习之第十九课
- Ubuntu13.10纯文本模式/终端中文乱码解决方法
- (模板)c++ 大数(正数加减乘除)
- 操作系统内存管理
- 排序算法之直接插入排序
- IOS开发------图片浏览器之UIImageView中的animation
- linux 忘记非root用户密码
- bzoj1016
- Java中abstract class 和 interface 的解释和他们的异同点(转)
- (模板)JAVA 大数的使用
- zend studio 创建php项目