欢迎来到天天文库
浏览记录
ID:36236360
大小:27.00 KB
页数:6页
时间:2019-05-07
《大整数加减乘除c 版》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、大整数加减乘除C++版1.#include 2.#include 3. 4.#define MAX_DIGIT 500 5. 6.//大数运算:加法 7.int Multiply(int *a,int *b,int *&result); 8.//大数运算:乘法 9.int Add(int *a,int *b,int *&result); 10.//大数运算:减法 11.int Sub(int *a,int *b,int *&re
2、sult); 12. 13.//逐位调整大数,如result为11 9 22 -3 -2调整为:1 0 3 9 -3,然后再对符号提升到最高位: 9 9 6 0 2... ... -1 14.//表示大数的值为-20699 15.void AjustEncodeArray(int *&result,unsigned int iMaxNum); 16. 17.//输出大数 18.void PrintBigNum(int *result); 19. 20.//把个位在高位
3、的字符数组转为个位在低位(下标0)的整型数组 21.void CArray2revDigitArray(char *cArray,int *DigitArray,unsigned int iNum); 22. 23.//大数运算:加法 24.int Add(int *a,int *b,int *&result) 25.{ 26. if(a==NULL
4、
5、 b==NULL
6、
7、 result==NULL) 27. { 28. printf("mul
8、tiply:input error"); 29. return -1; 30. } 31. int i=0,j=0; 32. //初始化result数组 33. for(i=0;i9、i] += (a[i]+b[i]); 40. } 41. AjustEncodeArray(result,MAX_DIGIT*2); 42. return 0; 1.} 2. 3.//大数运算:减法 4.int Sub(int *a,int *b,int *&result) 5.{ 6. if(a==NULL 10、11、 b==NULL 12、13、 result==NULL) 7. { 8. printf("multiply14、:input error"); 9. return -1; 10. } 11. int i=0,j=0; 12. //初始化result数组 13. for(i=0;i15、(a[i]-b[i]); //result里可以为负数 20. } 21. AjustEncodeArray(result,MAX_DIGIT*2); 22. return 0; 23.} 24. 25.//大数乘法 26.int Multiply(int *a,int *b,int *&result) 27.{ 28. if(a==NULL 16、17、 b==NULL 18、19、 result==NULL) 29. {20、 30. printf("multiply:input error"); 31. return -1; 32. } 33. int i=0,j=0; 34. //初始化result数组 35. for(i=0;i
9、i] += (a[i]+b[i]); 40. } 41. AjustEncodeArray(result,MAX_DIGIT*2); 42. return 0; 1.} 2. 3.//大数运算:减法 4.int Sub(int *a,int *b,int *&result) 5.{ 6. if(a==NULL
10、
11、 b==NULL
12、
13、 result==NULL) 7. { 8. printf("multiply
14、:input error"); 9. return -1; 10. } 11. int i=0,j=0; 12. //初始化result数组 13. for(i=0;i15、(a[i]-b[i]); //result里可以为负数 20. } 21. AjustEncodeArray(result,MAX_DIGIT*2); 22. return 0; 23.} 24. 25.//大数乘法 26.int Multiply(int *a,int *b,int *&result) 27.{ 28. if(a==NULL 16、17、 b==NULL 18、19、 result==NULL) 29. {20、 30. printf("multiply:input error"); 31. return -1; 32. } 33. int i=0,j=0; 34. //初始化result数组 35. for(i=0;i
15、(a[i]-b[i]); //result里可以为负数 20. } 21. AjustEncodeArray(result,MAX_DIGIT*2); 22. return 0; 23.} 24. 25.//大数乘法 26.int Multiply(int *a,int *b,int *&result) 27.{ 28. if(a==NULL
16、
17、 b==NULL
18、
19、 result==NULL) 29. {
20、 30. printf("multiply:input error"); 31. return -1; 32. } 33. int i=0,j=0; 34. //初始化result数组 35. for(i=0;i
此文档下载收益归作者所有