大数加法(一个C程序段)
2014-10-11 11:41
99 查看
可能算法不是很好,但是基本功能实现了。。。以字符串代替数字,模拟加法
以下是程序段:
以下是程序段:
char *BigAdd(char *str1, char *str2) //*str1,*str2为字符串地址,字符串倒序存入数组 { int lena, lenb, i, max; lena = strlen(str1); lenb = strlen(str2); max = lena > lenb ? lena : lenb; //计算每一位的和但是不进位 for (i = 0; i < max; i++) { *(str2 + i) = *(str1 + i) + *(str2 + i)-0x30; if(*(str2+i)<'0') *(str2+i)+=0x30; } //计算进位 for (i = 0; i < max - 1; i++) { if (*(str2 + i)>0x39) { *(str2 + i)-=10; *(str2 + i + 1)+=1; } } if (*(str2 + max - 1)>0x39) { *(str2 + max - 1) -=10; *(str2 + max) = '1'; } return str2; }
相关文章推荐
- 只考加法的面试题——将一个正整数表示成连续的自然数序列之和
- 一个加法编译器(AddYacc.y)
- C++中string的连续加法需要注意的一个地方
- 设计一个日期类Date,,要求: (1)包含年(year)、月(month)和日(day)私有数据成员。 (2)包含构造函数,重载关于一日期加上天数的加法运算符+、重载关于一日期减去天数的减加运算符-
- 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)
- 设计一个时间类Time,要求: (1)包含时(hour)、分(minute)和秒(second)私有数据成员。 (2)包含构造函数,重载关于一时间加上另一时间的加法运算符+、重载关于一时间减去另一时间
- 递归算法(求n的加法组合,将一个整数拆分成多个整数相加的形式, O(N)时间,O(N)空间)4.0版
- gsoap入门--用goap写一个加法的WebService
- 一个数拆分成连续自然数的和(只考加法的面试题)
- 一个加法编译器(AddLex.l)
- 关于一个加法优化的一个地方.....
- 一个数拆分成连续自然数的和(只考加法的面试题)
- 黑马程序员--学习笔记--一个WinForm简单加法练习程序
- 我用c++写的一个多项式的处理器的核心部分和输出部分。实现多项式的加法,减法,乘法,除法,及其求余。
- 一个加法编译器(bison.simple)
- 一个通用的加法计算,适合所有类型 注:不用方法重载实现
- 编一个程序,完成64位数据(无符号)的加法、减法运算。不允许直接使用64位的数据类型。(未完成)
- C#程序设计(十)----(一个用移位和加法运算取代整数相乘的方法)
- 用Android 开发的一个加法计算器
- 任意输入一个整数,输出这个值的加法表