#include <stdio.h> #include <string.h> int main(){ char addend[1000]; while(gets(addend)){ char augend[1000]; int n1[300]={0},n2[300]={0},res[300]={0}; gets(augend); int len1=strlen(addend); int len2=strlen(augend); int i,j,carry=0; for(i=0;i<len1;i++){//用各个位的字符与字符‘0’的差值作为计算的操作数 n1[i]=addend[len1-1-i]-'0';//按逆序输入到数组中,因为是从最低为依次往高位相加 } for(i=0;i<len2;i++){ n2[i]=augend[len2-1-i]-'0'; } for(i=0;i<len1||i<len2;i++){ res[i]=(n1[i]+n2[i]+carry)%10;//对应位置相加和10的取余为该位值,如果大于9意味着要向前进一位 carry=(n1[i]+n2[i]+carry)>9?1:0; } int len=len1>len2?len1:len2; if(res[len]==0)// len=len-1; for(i=len;i>=0;i--){ printf("%d",res[i]); } printf("\n"); } return 0; }
#python大法好,但就做题来说没什么意义 while True: try: s1=int(input()) s2=int(input()) print(s1+s2) except: break