首页 > 代码库 > hdu_1003
hdu_1003
1 // hdu 1002 2 // high precision 3 // Dec.28 2014 4 5 #include <cstdio> 6 #include <cstring> 7 #include <algorithm> 8 9 #define MaxL 111110 11 int T, a[MaxL], b[MaxL], s[MaxL], a_len, b_len, s_len;12 char str_a[MaxL], str_b[MaxL];13 14 int main(int argc, char const *argv[])15 {16 scanf("%d",&T);17 for(int case_num = 1; case_num <= T; ++case_num){18 a_len = b_len = 0;19 // get big number by character string as buffer20 scanf("%s", str_a);21 scanf("%s", str_b);22 memset(a, 0, sizeof(a));23 memset(b, 0, sizeof(b));24 memset(s, 0, sizeof(s));25 // read the number into int array in reverse order26 for(int i = strlen(str_a)-1; i >= 0; --i)27 a[++a_len] = str_a[i] - ‘0‘;28 for (int i = strlen(str_b)-1; i >= 0; --i)29 b[++b_len] = str_b[i] - ‘0‘;30 // s_len is the longer one between a and b31 s_len = std::max(a_len, b_len);32 int carry = 0;33 34 for(int i = 1; i <= s_len; ++i){35 int temp = a[i] + b[i] + carry;36 carry = temp / 10 ;37 s[i] = temp % 10;38 }39 if(carry > 0)40 s[++s_len] = carry;41 if(case_num > 1)42 printf("\n");43 printf("Case %d:\n%s + %s = ", case_num, str_a, str_b);44 for(int i = s_len; i > 0; --i)45 printf("%d", s[i]);46 printf("\n");47 }48 return 0;49 }
hdu_1003
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。