首页 > 代码库 > HDU 1002
HDU 1002
大数相加,我的做法是开两个字符数组,和整型数组,将字符数组存到整型数组里面去,让两个整型数组相加,如果大于等于10,前一位进一(因为存的时候顺序已经反了)。。
然后从后面开始判断非0,如果遇到不是零的直接跳出,输出数组。直接上代码吧。
#include <stdio.h> #include <string.h> int main() { int a[1005]; int b[1005]; char a1[1005]; char a2[1005]; int n,m,i,j,l1,l2,cc; scanf("%d",&n); m=n; int wbx=1; while(m--) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); scanf("%s%s",a1,a2); l1=strlen(a1); l2=strlen(a2); cc=0; for(i=l1-1;i>=0;i--) a[cc++]=a1[i]-'0'; cc=0; for(i=l2-1;i>=0;i--) b[cc++]=a2[i]-'0'; for(i=0;i<1005;i++) { a[i]+=b[i]; if(a[i]>=10) { a[i]-=10; a[i+1]++; } } printf("Case %d:\n",wbx++); printf("%s + %s = ",a1,a2); for(i=1004;i>=0;i--) if(a[i]) break; for(j=i;j>=0;j--) printf("%d",a[j]); printf("\n"); if(wbx!=n+1) printf("\n"); } return 0; }
HDU 1002
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。