Hdu oj 1002 A + B Problem II

来源:互联网 发布:阿里云备案会打电话吗 编辑:程序博客网 时间:2024/05/20 09:09

分析:用字符串模拟数的加法。

#include<stdio.h>#include<string.h>#define N 1000char str1[N],str2[N];int ans1[N+10],ans2[N+10];int main(){int t;int k;scanf("%d",&t);k=0;while(t--){int i,j;int len1,len2;memset(ans1,0,sizeof(ans1));memset(ans2,0,sizeof(ans2));scanf("%s%s",str1,str2);len1=strlen(str1);len2=strlen(str2);k++;printf("Case %d:\n",k);printf("%s + %s = ",str1,str2);for(i=len1-1,j=0;i>=0;i--)//要考虑进位,将数字逆序存放到数组中 {ans1[j]=str1[i]-'0';j++;}for(i=len2-1,j=0;i>=0;i--){ans2[j]=str2[i]-'0';j++;}for(i=0;i<N;i++){ans1[i]+=ans2[i];if(ans1[i]>=10){ans1[i]-=10;ans1[i+1]++;}}for(i=N;i>=0&&ans1[i]==0;i--)//数字逆序存放在数组中,输出时应确保高位的零不被输出。   ;if(i>=0){for(;i>=0;i--)printf("%d",ans1[i]);}elseprintf("0");printf("\n");if(t)printf("\n");}return 0;}


 

0 0
原创粉丝点击