{"id":108,"date":"2018-09-09T10:31:00","date_gmt":"2018-09-09T02:31:00","guid":{"rendered":"https:\/\/www.wangliguang.cn\/?p=108"},"modified":"2025-08-05T09:57:23","modified_gmt":"2025-08-05T01:57:23","slug":"hdu1002abproblemii","status":"publish","type":"post","link":"https:\/\/wangliguang.cn\/?p=108","title":{"rendered":"HDU1002 : A + B Problem II"},"content":{"rendered":"<p>A + B Problem II<\/p>\n<blockquote><p>\n  Time Limit: 2000\/1000 MS (Java\/Others)    Memory Limit: 65536\/32768 K (Java\/Others) <br \/>\n  Total Submission(s): 367113    Accepted Submission(s): 71500\n<\/p><\/blockquote>\n<p>Problem Description<\/p>\n<blockquote><p>\n  I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.\n<\/p><\/blockquote>\n<p>Input<\/p>\n<blockquote><p>\n  The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.\n<\/p><\/blockquote>\n<p>Output<\/p>\n<blockquote><p>\n  For each test case, you should output two lines. The first line is \u201cCase #:\u201d, # means the number of the test case. The second line is the an equation \u201cA + B = Sum\u201d, Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.\n<\/p><\/blockquote>\n<p>Sample Input<\/p>\n<blockquote><p>\n  2 <br \/>\n  1 2 <br \/>\n  112233445566778899 998877665544332211\n<\/p><\/blockquote>\n<p>Sample Output<\/p>\n<blockquote><p>\n  Case 1: <br \/>\n  1 + 2 = 3 <br \/>\n  Case 2: <br \/>\n  112233445566778899 + 998877665544332211 = 1111111111111111110\n<\/p><\/blockquote>\n<p>\u4ee3\u7801\u5982\u4e0b\uff0c\u90e8\u5206\u4ee3\u7801\u76f4\u63a5\u7528\u4e86\u8001\u5e08\u7684\u8bfe\u4ef6\u4e0a\u7684\uff0c\u66f4\u6b63\u4e86\u9519\u8bef\u3002<\/p>\n<pre class=\"prettyprint\"><code class=\"language-C++ hljs cpp\"><span class=\"hljs-preprocessor\">#include<iostream><\/span>\n<span class=\"hljs-preprocessor\">#include<cstdio><\/span>\n<span class=\"hljs-preprocessor\">#include<cmath><\/span>\n<span class=\"hljs-preprocessor\">#include<cstring><\/span>\n<span class=\"hljs-preprocessor\">#include<algorithm><\/span>\n<span class=\"hljs-keyword\">using<\/span> <span class=\"hljs-keyword\">namespace<\/span> <span class=\"hljs-built_in\">std<\/span>;\n<span class=\"hljs-keyword\">int<\/span> m3[<span class=\"hljs-number\">100002<\/span>];\n<span class=\"hljs-keyword\">int<\/span> f = <span class=\"hljs-number\">1<\/span>;\n<span class=\"hljs-keyword\">void<\/span> Reverse(<span class=\"hljs-keyword\">char<\/span> *word,<span class=\"hljs-keyword\">int<\/span> len)   <span class=\"hljs-comment\">\/\/ \u53cd\u8f6c\u6570\u5b57 <\/span>\n{\n    <span class=\"hljs-keyword\">char<\/span> temp;\n    <span class=\"hljs-keyword\">int<\/span> i, j;\n    <span class=\"hljs-keyword\">for<\/span> (j = <span class=\"hljs-number\">0<\/span>, i = len - <span class=\"hljs-number\">1<\/span>; j < i; --i, ++j) {\n        temp = word[i];\n        word[i] = word[j];\n        word[j] = temp;\n    }\n}\n<span class=\"hljs-keyword\">int<\/span> check(<span class=\"hljs-keyword\">int<\/span> a[],<span class=\"hljs-keyword\">int<\/span> num)      <span class=\"hljs-comment\">\/\/\u5f52\u6574<\/span>\n{  <span class=\"hljs-keyword\">int<\/span> k=<span class=\"hljs-number\">0<\/span>,len=num;\n    <span class=\"hljs-keyword\">while<\/span>(a[len-<span class=\"hljs-number\">1<\/span>]==<span class=\"hljs-number\">0<\/span>&&len><span class=\"hljs-number\">1<\/span>) len--;    <span class=\"hljs-comment\">\/\/\u53bb\u6389\u524d\u5bfc0<\/span>\n    <span class=\"hljs-keyword\">for<\/span>(k=<span class=\"hljs-number\">0<\/span>; k<len; k++)\n        <span class=\"hljs-keyword\">if<\/span>(a[k]>=<span class=\"hljs-number\">10<\/span>)\n        {\n          a[k+<span class=\"hljs-number\">1<\/span>]=a[k+<span class=\"hljs-number\">1<\/span>]+ a[k]\/<span class=\"hljs-number\">10<\/span>;  a[k]=a[k] % <span class=\"hljs-number\">10<\/span>;\n        }\n    <span class=\"hljs-keyword\">if<\/span> (a[k]!=<span class=\"hljs-number\">0<\/span>) len=k+<span class=\"hljs-number\">1<\/span>;  <span class=\"hljs-comment\">\/\/\u786e\u5b9a\u6570\u7ec4\u6700\u7ec8\u957f\u5ea6<\/span>\n    <span class=\"hljs-keyword\">return<\/span> len;\n}\n<span class=\"hljs-keyword\">int<\/span> addition(<span class=\"hljs-keyword\">int<\/span> m3[], <span class=\"hljs-keyword\">char<\/span> m1[], <span class=\"hljs-keyword\">int<\/span> num1, <span class=\"hljs-keyword\">char<\/span> m2[], <span class=\"hljs-keyword\">int<\/span> num2)\n{\n    <span class=\"hljs-keyword\">int<\/span> i,len1,len2,len;\n    len1=num1;\n    len2=num2;\n    len=(len1>=len2)?len1:len2;     <span class=\"hljs-comment\">\/\/\u5b9a\u4f4d\u6570<\/span>\n    <span class=\"hljs-keyword\">for<\/span>(i=<span class=\"hljs-number\">0<\/span>; i<=len; i++) m3[i]=<span class=\"hljs-number\">0<\/span>;   <span class=\"hljs-comment\">\/\/\u521d\u59cb\u5316<\/span>\n    <span class=\"hljs-keyword\">for<\/span> (i=len1; i<len + <span class=\"hljs-number\">1<\/span>; i++) m1[i]=<span class=\"hljs-string\">'0'<\/span>; <span class=\"hljs-comment\">\/\/\u7f3a\u4f4d\u524d\u5bfc\u88650<\/span>\n    m1[i] = <span class=\"hljs-string\">'\\0'<\/span>;\n    <span class=\"hljs-keyword\">for<\/span> (i=len2; i<len + <span class=\"hljs-number\">1<\/span>; i++)    m2[i]=<span class=\"hljs-string\">'0'<\/span>;\n    m2[i] = <span class=\"hljs-string\">'\\0'<\/span>;\n    Reverse(m1,len1);\n    Reverse(m2,len2);\n    <span class=\"hljs-keyword\">for<\/span> (i=<span class=\"hljs-number\">0<\/span>; i<=len; i++)\n        m3[i]=(<span class=\"hljs-keyword\">int<\/span>)(m1[i]-<span class=\"hljs-string\">'0'<\/span>+m2[i]-<span class=\"hljs-string\">'0'<\/span>);   <span class=\"hljs-comment\">\/\/\u52a0\u6cd5<\/span>\n    len=check(m3,len);\n    <span class=\"hljs-keyword\">return<\/span> len;\n}\n<span class=\"hljs-keyword\">int<\/span> Fun(<span class=\"hljs-keyword\">char<\/span> a[]){   <span class=\"hljs-comment\">\/\/\u786e\u5b9a\u4f4d\u6570<\/span>\n    <span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>;\n    <span class=\"hljs-keyword\">for<\/span>(i = <span class=\"hljs-number\">0<\/span>; a[i] != <span class=\"hljs-string\">'\\0'<\/span>; i++);\n    <span class=\"hljs-keyword\">return<\/span> i;  <span class=\"hljs-comment\">\/\/\u7cbe\u786e\u4f4d\u6570<\/span>\n}\n<span class=\"hljs-keyword\">int<\/span> main(){\n    <span class=\"hljs-keyword\">char<\/span> num1[<span class=\"hljs-number\">100001<\/span>],num2[<span class=\"hljs-number\">100001<\/span>];\n    <span class=\"hljs-keyword\">int<\/span> m,len1,len2,len;\n    <span class=\"hljs-built_in\">cin<\/span> >> m;\n    <span class=\"hljs-keyword\">while<\/span>(m--){\n        <span class=\"hljs-built_in\">cin<\/span> >> num1 >> num2;\n        len1 = Fun(num1);\n        len2 = Fun(num2);\n        <span class=\"hljs-keyword\">if<\/span>(f != <span class=\"hljs-number\">1<\/span>){\n            <span class=\"hljs-built_in\">cout<\/span> << endl;\n        }\n        <span class=\"hljs-built_in\">cout<\/span> << <span class=\"hljs-string\">\"Case \"<\/span> << f << <span class=\"hljs-string\">\":\"<\/span> << endl;\n        <span class=\"hljs-built_in\">cout<\/span> << num1 << <span class=\"hljs-string\">\" + \"<\/span> << num2 << <span class=\"hljs-string\">\" = \"<\/span>;\n        len = addition(m3,num1,len1,num2,len2);\n        <span class=\"hljs-keyword\">for<\/span>(<span class=\"hljs-keyword\">int<\/span> i = len -<span class=\"hljs-number\">1<\/span>; i >= <span class=\"hljs-number\">0<\/span>; i--){\n            <span class=\"hljs-built_in\">cout<\/span> << m3[i];\n        }\n        <span class=\"hljs-built_in\">cout<\/span> << endl ;\n        f++;\n    }\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>A + B Problem II Time Limit: 2000\/1000 MS (Java\/Others)&hellip; <a href=\"https:\/\/wangliguang.cn\/?p=108\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb <span class=\"screen-reader-text\">HDU1002 : A + B Problem II<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22],"tags":[44],"class_list":["post-108","post","type-post","status-publish","format-standard","hentry","category-22","tag-44"],"_links":{"self":[{"href":"https:\/\/wangliguang.cn\/index.php?rest_route=\/wp\/v2\/posts\/108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wangliguang.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wangliguang.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wangliguang.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wangliguang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=108"}],"version-history":[{"count":1,"href":"https:\/\/wangliguang.cn\/index.php?rest_route=\/wp\/v2\/posts\/108\/revisions"}],"predecessor-version":[{"id":679,"href":"https:\/\/wangliguang.cn\/index.php?rest_route=\/wp\/v2\/posts\/108\/revisions\/679"}],"wp:attachment":[{"href":"https:\/\/wangliguang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wangliguang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wangliguang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}