码迷,mamicode.com
首页 > 其他好文 > 详细

HDU1002

时间:2017-12-04 23:39:39      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:tgt   size   title   mis   组成   计算   应该   整数   main   

A + B Problem II

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 389710    Accepted Submission(s): 75441

问题描述

我有一个很简单的问题要问你。给定两个整数A和B,你的任务是计算A + B的和。

 

输入

输入的第一行包含一个整数T(1 <=T<= 20),这意味着测试用例的数量。然后T行跟随,每一行由两个正整数组成,A和b。注意整数非常大,这意味着你不应该使用32位整数来处理它们。您可以假定每个整数的长度不会超过1000。

 

输出

对于每个测试用例,您应该输出两行。第一行是“Case #:”,#表示测试用例的数量。第二行是“A + B = Sum”的方程,和表示A + B的结果。在两个测试用例之间输出一个空行。

 

Sample Input
2
1 2
112233445566778899 998877665544332211
 
Sample Output
Case 1: 1 + 2 = 3
 
Case 2: 112233445566778899 + 998877665544332211 = 1111111111111111110
 
 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 int main()
 5 {
 6     string num1,num2,num;
 7     int temp,j;
 8     int maxsize,flag;
 9     int *p1=nullptr,*p2=nullptr;
10     int all;
11     cin>>all;
12     for(int ri=1;ri<=all;++ri)
13     {
14         flag=false;
15         cin>>num1>>num2;
16         //将较长的字符串放置于unm1
17         if(num1.length()<num2.length())
18         {
19             num=num1;
20             num1=num2;
21             num2=num;
22             flag=true;
23         }
24         //申请空间存放数字
25         maxsize=num1.length();
26         p1=new int[maxsize];
27         p2=new int[maxsize];
28         //数组初始化所有为0
29         for(int i=0;i!=maxsize;++i)
30             p1[i]=p2[i]=0;
31         //将数字填入数组
32         j=0;
33         for(auto a:num1)
34         {
35             p1[j]=a-0;
36             ++j;
37         }
38         j=num1.length()-num2.length();
39         for(auto a:num2)
40         {
41             p2[j]=a-0;
42             ++j;
43         }
44         //开始计算
45         for(int i=maxsize-1;i>=0;--i)
46         {
47             temp=p1[i]+p2[i];
48             if(temp>=10)
49             {
50                 if(i!=0)
51                 {
52                     p1[i]=temp%10;
53                     p1[i-1]+=1;
54                 }
55                 else
56                 {
57                     p1[i]=temp;
58                 }
59             }
60             else
61                 p1[i]=temp;
62         }
63         //输出
64         cout<<"Case "<<ri<<":"<<endl;
65         if(flag)
66             cout<<num2<<" + "<<num1<<" = ";
67         else
68             cout<<num1<<" + "<<num2<<" = ";
69         for(int i=0;i!=maxsize;++i)
70             cout<<p1[i];
71         if(ri!=all)
72             cout<<endl<<endl;
73         else
74             cout<<endl;
75         //释放空间
76         delete []p1;
77         delete []p2;
78         p1=nullptr;
79         p2=nullptr;
80     }
81     return 0;
82 }

 

HDU1002

标签:tgt   size   title   mis   组成   计算   应该   整数   main   

原文地址:http://www.cnblogs.com/BOW1203/p/7979365.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!