大数减法
发布时间:2020-12-14 03:58:35 所属栏目:大数据 来源:网络整理
导读:大数减法模板只支持正数的大数减法并且被减数大于减数 #include iostream#include cstdlib#include cstring#include stringusing namespace std;#define MAXN 100char* Subtraction(string A,string B);int main(){ string num1,num2; cinnum1num2; Subtract
大数减法模板只支持正数的大数减法并且被减数大于减数
#include <iostream> #include <cstdlib> #include <cstring> #include <string> using namespace std; #define MAXN 100 char* Subtraction(string A,string B); int main() { string num1,num2; cin>>num1>>num2; Subtraction(num1,num2); return 0; } char* Subtraction(string A,string B) { int i,k; int len1,len2; int up; int length; len1 = A.length(); len2 = B.length(); int a[MAXN+4] ={0}; int b[MAXN+4] ={0}; int c[MAXN+4] ={0}; for(k=0,i=len1-1; i>=0; i--) a[k++] = A[i]-'0'; for(k=0,i=len2-1; i>=0; i--) b[k++] = B[i]-'0'; for(i=0,up=0; i<MAXN; i++) { c[i] = a[i]-b[i]-up; if(c[i]<0) { c[i] += 10; up=1; } else up = 0; } for(i=MAXN; i>=0; i--) if(c[i]) break; length = i+1; cout<<length<<endl; char* result = (char *)malloc((sizeof(char)*length)); for(i=length-1,k=0; i>=0; i--) result[k++] = c[i]+ '0'; //测试输出 cout<<A<<" - "<<B<<" = "; for(i=0; i<length; i++) cout<<result[i]; cout<<endl; return result; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |