大数相加
2014-06-26 20:58
141 查看
思想比较简单,没有进行优化。
#include<iostream> #define MAX 10 #include<cstring> using namespace std; void plus(const char * ,const char * ,char * ); int main() { char n1[10],n2[10],n3[10]; cin>>n1>>n2; plus(n1,n2,n3); int i =strlen(n3); for (int dex = i-1; dex >= 0;dex--) cout<<n3[dex]; cout<<endl; } void plus(const char * n1 ,const char * n2,char * n3) { cout<< 1<<endl; int n11 = strlen(n1)-1; int n22 = strlen(n2)-1; int i =0 ; bool flage = false; for( ; (n11>-1) && (n22>-1) ;n11--, n22--,i++) { cout<< i<<endl; if (n1[n11] + n2[n22]+flage -'0'-'0' >= 10) { n3[i] = n1[n11] + n2[n22]+flage -'0' -10; flage = true; } else { n3[i] = n1[n11] + n2[n22]+flage -'0' ; flage = false ; } cout<< i<<" "<<n3[i]<<endl;; } if (n11 != -1) { while (n11 !=-1) { if (n1[n11] +flage -'0' >= 10) { n3[i] = n1[n11] +flage - 10; flage = true ; } else { n3[i] = n1[n11] +flage ; flage = false ; } cout<< i<<" "<<n3[i]<<endl; i++; n11--; } } else if (n22 != -1) { while (n22 !=-1) { if (n2[n22] +flage -'0' >= 10) { n3[i] = n2[n22] +flage - 10; flage = true ; } else { n3[i] = n2[n22] +flage ; flage = false ; } i++; n11--; } cout<< i<<" "<<n3[i]; } if (flage) { n3[i++] ='1'; } n3[i] ='\0'; }
相关文章推荐
- C++实现——大数相加
- 数相乘、大数相加、大数相减Java版本
- 大数相加 + 方法1
- 用C处理大数相加问题
- POJ 1503 Integer Inquiry(大数相加)
- 1002 大数相加 (简单模拟) 水题
- ObjC 实现的大数相加,大数相乘和n的阶乘
- 大数相加
- 杭电 1002-大数相加
- HDU1002大数相加问题
- Linux C/C++ 编程练手 --- 大数相加和大数相乘
- 大数相加
- 杭电1002——大数相加
- 大数相乘、大数相加、大数相减Java版本
- a+b(满足大数相加)
- android/移动端面试#1 大数相加
- 大数相乘+大数相加
- 大数相加
- 杭电1002 大数相加
- poj 1503 Integer Inquiry(多个大数相加)