hdu 1047 Integer Inquiry(大整数求和)
2014-10-19 10:44
423 查看
//hdu 1047 Integer Inquiry(大整数求和) /* 题意:就是大整数高精度求和: 解题:不过的注意的是格式的输出。 要是如果用JAVA的话估计不用几行代码。 */ #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N=400; struct node { int len; int num ; }; char s ; void print(node a) { for(int i=a.len-1;i>=0;i--) { printf("%d",a.num[i]); } printf("\n"); } node operator +(node a,node b)//两个大数相加; { node sum; int len1=a.len<b.len?a.len:b.len; sum.len=a.len>b.len?a.len:b.len; int w,v=0; for(int i=0;i<len1;i++) { w=a.num[i]+b.num[i]+v; sum.num[i]=w%10; v=w/10; } for(int i=len1;i<a.len;i++) { w=a.num[i]+v; sum.num[i]=w%10; v=w/10; } for(int i=len1;i<b.len;i++) { w=b.num[i]+v; sum.num[i]=w%10; v=w/10; } if(v!=0) { sum.num[sum.len]=v; sum.len++; } return sum; } int main() { int t; scanf("%d",&t); for(int it=1;it<=t;it++) { node sum; sum.len=1; sum.num[0]=0; node temp; while(scanf("%s",s)!=EOF) { if(strcmp(s,"0")==0) break; temp.len=strlen(s); int j=0; for(int i=temp.len-1;i>=0;i--) { temp.num[j++]=s[i]-'0'; } sum=sum+temp; } print(sum); if(it!=t) printf("\n"); } return 0; }
相关文章推荐
- HDU-1047 Integer Inquiry Java
- hdu 1047 Integer Inquiry
- ZOJ 1292/HDU 1047 Integer Inquiry
- hdu 1047 Integer Inquiry(高精度加法)
- hdu 1047 Integer Inquiry(高精度数)
- HDU 1047 Integer Inquiry
- HDU 1047 Integer Inquiry(高精度加法)
- HDU 1047 Integer Inquiry
- HDU - 1047 - Integer Inquiry (大数高精度)
- hdu 1047 Integer Inquiry(大数加)
- hdu 1047 Integer Inquiry(JAVA)
- hdu 1047 Integer Inquiry
- hdu 1047 Integer Inquiry
- hdu 1047 Integer Inquiry
- HDU_1047 Integer Inquiry(高精度)
- HDU-1047 Integer Inquiry Java
- hdu 1047 Integer Inquiry
- hdu 1047 Integer Inquiry
- HDU 1047 Integer Inquiry 大数相加 string解法
- HDU 1047 -- Integer Inquiry(Java)