航电1002大数加减问题

一道基础大数加减问题,对两对字符串进行末位数加减,当然,末位数要进行数据类型转化,字符转化成数字,以此类推,注意进位即可。最后输出的时候再转化为对应的字符输出,数据位对10取模。需要注意的一点是,在前部分算完后再判断一下还有进位没有,其他就没啥需要注意的了。哦,对了,这道题对格式要求挺严格的,输出的时候需要特别注意一下。
AC算法如下:

#include<iostream>
#include<cstring>
#include<string>
using namespace std;
string bigAdd(string num1,string num2){
	string res;
	if(num1.size()==0){
		res=num2;
		return res;
	}
	if(num2.size()==0){
		res=num1;
		return res;
	}
	res="";
	int n1=num1.size()-1,n2=num2.size()-1;
	int carry=0;
	while(n1>=0||n2>=0){
		int a=n1>=0?num1[n1--]-'0':0;
		int b=n2>=0?num2[n2--]-'0':0;
		int t=carry+a+b;
		carry=t/10;
		t=t%10;
		res=to_string(t)+res;
	}
	while(carry){
		int	t=carry/10;
		carry=carry%10;
		res=to_string(carry)+res;
		carry=t;
	}
	return res;
}
int main(){
	int count;
	cin>>count;
	if(count>=1&&count<=20){
		string a[22][2];
		for(int i=0;i<count;i++){
			cin>>a[i][0]>>a[i][1];
		}
		for(int i=0;i<count;i++){
			cout<<"Case "<<i+1<<":"<<endl;
			cout<<a[i][0]<<" + "<<a[i][1]<<" = "<<bigAdd(a[i][1],a[i][1])<<endl;
			if(i+1!=count){
				cout<<endl;
			}
		}
	}
	return 0;
}
上一篇:android 桌面图标添加数字角标


下一篇:ReactNative: 使用弹出框组件ActionSheetIOS组件