hdu1047大数处理

来源:互联网 发布:新速特软件站增强版 编辑:程序博客网 时间:2024/06/06 04:34

就是多个数相加的和,利用字符串来处理就行了

#include<stdio.h>#include<climits>#include<algorithm>#include<stack>#include<iostream>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<string.h>using namespace std;const int maxn=1010;char s[maxn];int sum[maxn];int  main(void){  int t;  scanf("%d",&t);  for(int ii=1;ii<=t;ii++)  {       memset(sum,0,sizeof(sum));       getchar();       int len=0;       int flag=0;        while(scanf("%s",s)&&strcmp(s,"0")!=0)       {  getchar();  flag++;  if(strlen(s)>len) len=strlen(s);  for(int i=strlen(s)-1,j=0;i>=0;i--,j++)  {    sum[j]+=s[i]-'0';  }       }       int c=0;       for(int i=0;i<len;i++)       {     sum[i]+=c;           c=(sum[i])/10;       sum[i]%=10;        }       while(c!=0)       {  sum[len]+=c;  c=sum[len]/10;  sum[len]%=10;  len++;   }   for(int i=len-1;i>=0;i--)     printf("%d",sum[i]);       if(flag==0) printf("0");       if(ii!=t) printf("\n\n");       else printf("\n");     }  return 0;}/*41234567890123456789012345678901234567890123456789012345678901234567890123456789012345678900*/


0 0
原创粉丝点击