poj之2981大整数相加

来源:互联网 发布:js 二维数组赋值 编辑:程序博客网 时间:2024/05/20 22:39
 
#include<iostream>#include<string.h>#define max 200using namespace std;char s1[max+10];char s2[max+10];int a1[max+10];int a2[max+10];int main(){int i,j;int str1,str2;cin>>s1;cin>>s2;memset(a1,0,sizeof(a1));//初始化数组全为零memset(a2,0,sizeof(a2));//初始化数组全为零str1=strlen(s1);j=0;for(i=str1-1;i>=0;i--)a1[j++]=s1[i]-'0';str2=strlen(s2);j=0;for(i=str2-1;i>=0;i--)a2[j++]=s2[i]-'0';for(i=0;i<max;i++){a1[i]=a1[i]+a2[i];//逐位相加if(a1[i]>=10)//是否有进位{a1[i]=a1[i]-10;a1[i+1]++;//进位}}    bool t=false;//此变量用于跳过多余的零for(i=max;i>=0;i--){if(t)cout<<a1[i];else if(a1[i])//如果多余的零已经都跳过,则输出{cout<<a1[i];            t=true;//碰到第一个非零的值,就说明多余的零已经都跳过}}if(!t)//如果全是零,则输出0;特殊之特殊情况cout<<"0";    return 0;}

原创粉丝点击