High precision plus (template)

topic

topic

Code

#include<iostream>
#include<string.h>
using namespace std;
const int maxn = 500;
char a[maxn],b[maxn];
int aa[maxn],bb[maxn],cc[maxn];
int main(){
    
    
	cin>>a>>b;
	//逆序赋值给整形数组 
	int la = strlen(a),lb = strlen(b);
	for(int i = 0;i<la;i++) 
		aa[i] = a[la-i-1] - '0';
	for(int i = 0;i<lb;i++) 
		bb[i] = b[lb-i-1] - '0';
	//相加 
	int flag = 0;
	for(int i = 0;i<la || i<lb ;i++){
    
    	//以最大的为界限
		int temp = aa[i] + bb[i] + flag;
		cc[i] = temp%10;
		flag = temp/10;
	} 
	if(flag){
    
    
		cout<<flag;
	}
	//逆序输出
	for(int i = max(la,lb)-1;i>=0 ;i--){
    
    
		cout<<cc[i];
	} 
	return 0;
}

Guess you like

Origin blog.csdn.net/m0_45210226/article/details/108195074