原题描述:

A - A + B Problem II

I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.

InputThe 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. 
OutputFor each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line is the an equation "A + B = Sum", Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.

Sample Input

2
1 2
112233445566778899 998877665544332211

Sample Output

Case 1:
1 + 2 = 3

Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110
第二次看到这个题目了,第一次是在杭电acm上,那时侯想了用数组,不过没做出来。其实这个题目不算难,我直接定义了两个个字符型数组用来存储算数,定义一个整形数组存储值。先判断那个数组长度大.
两个字符型数组从后面相加,存储到整形数组上,如果值大于10再向前进1(不可能大于20)一直到短的那个数组为0的时候停止相加。直接把长的赋值到上面就可以了,记得进位!
用长的字符型数组长度判断整形数组的长度。然后就可以输出了。代码复杂,但是浅显易懂。
AC代码:
 1 #include <iostream>
 2 #include <string.h>
 3 const int N=1000;
 4 using namespace std;
 5 int main()
 6 {
 7     int t,l,m,n,sum[N+1]={0};
 8     int g=1;
 9     char a[N],b[N];
10     cin>>t;
11     while(t--)
12     {
13         int i;
14         cin>>a>>b;
15         m=strlen(a);
16         n=strlen(b);
17         l=m>=n?m:n;
18         if(m<=N&&n<=N)
19         {
20         if(m>=n)
21         {
22             for(i=0;n>0;i++)
23             {
24                 sum[i]=sum[i]+(a[m-1]-'0')+(b[n-1]-'0');
25                 m--;
26                 n--;
27                 if(sum[i]>9)
28                 {
29                     sum[i]-=10;
30                     sum[i+1]++;
31                 }
32             }
33             for( ;m>0;i++,m--)
34             sum[i]=sum[i]+(a[m-1]-'0');
35         }
36         else
37          {
38             for(i=0;m>0;i++)
39             {
40                 sum[i]=sum[i]+(a[m-1]-'0')+(b[n-1]-'0');
41                 m--;
42                 n--;
43                 if(sum[i]>9)
44                 {
45                     sum[i]-=10;
46                     sum[i+1]++;
47                 }
48             }
49             for( ;n>0;i++,n--)
50             sum[i]=sum[i]+(b[n-1]-'0');
51         }
52         }
53         if(sum[i]==0)
54         i--;
55         cout<<"Case "<<g<<":"<<endl;
56         g++;
57         cout<<a<<" + "<<b<<" = ";
58          for( ;i>=0;i--)
59         cout<<sum[i];
60         for(i=0;i<=l;i++)
61         sum[i]=0;
62         if(t!=0)
63         cout<<endl<<endl;
64         else cout<<endl;
65     }
66     return 0;
67 }

Week 1 # A A + B Problem II的更多相关文章

  1. hdu1032 Train Problem II (卡特兰数)

    题意: 给你一个数n,表示有n辆火车,编号从1到n,入站,问你有多少种出站的可能.    (题于文末) 知识点: ps:百度百科的卡特兰数讲的不错,注意看其参考的博客. 卡特兰数(Catalan):前 ...

  2. nyoj 623 A*B Problem II(矩阵)

    A*B Problem II 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 ACM的C++同学有好多作业要做,最头痛莫过于线性代数了,因为每次做到矩阵相乘的时候,大 ...

  3. HDU 1002 A + B Problem II

    A + B Problem II   Time Limit: 1000MS      Memory Limit: 65536K Total Submissions: 16104    Accepted ...

  4. A + B Problem II

    之前总是在查阅别人的文档,看着其他人的博客,自己心里总有一份冲动,想记录一下自己学习的经历.学习算法有一段时间了,于是想从算法开始自己的博客生涯O(∩_∩)O~~ 今天在网上看了一道大数相加(高精度) ...

  5. nyoj 103 A + B problem II

    点击打开链接 A+B Problem II 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 I have a very simple problem for you. G ...

  6. hdu 1023 Train Problem II

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1212 Train Problem II Description As we all know the ...

  7. HDU1002 -A + B Problem II(大数a+b)

    A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. 杭电ACM(1002) -- A + B Problem II 大数相加 -提交通过

    杭电ACM(1002)大数相加 A + B Problem II Problem DescriptionI have a very simple problem for you. Given two ...

  9. hdoj 1002 A + B Problem II

    A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  10. hdoj 1002 A + B Problem II【大数加法】

    A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

随机推荐

  1. OVS + dpdk 安装与实验环境配置

    ***DPDK datapath的OVS的安装与实验环境配置 首先肯定是DPDK的安装       0:安装必要的工具            make            gcc           ...

  2. 06.04 html

    域名跟ip地址是绑定的看某个网站的ip地址 可以ping网址知道ip地址   最终访问的都是ip地址  每个ip地址都对应了一个空间(一块区域 要用来存储内容)网页访问的原理: 客户端电脑发动请求到服 ...

  3. 【WPF】用三角形网格构建三维图形

    虽然WPF只能支持部分三维模型,不过从应用功能开发的角度看,也已经够用了(非游戏开发).WPF 的三维图形,说得简单一点,也就两种而已. 1.把二维对象放到三维空间中,这个应该较为好办,像 Image ...

  4. js事件循环

    之前有看过一些事件循环的博客,不过一阵子没看就发现自己忘光了,所以决定来自己写一个博客总结下! 首先,我们来解释下事件循环是个什么东西: 就我们所知,浏览器的js是单线程的,也就是说,在同一时刻,最多 ...

  5. Spring学习(4)---Bean基础

    Bean配置项 Bean的作用域 Bean的生命周期 Bean的自动装配 Resources & ResourceLoader (一) Bean配置项 常用的配置项 Id   (IOC容器中B ...

  6. django 自定义过滤器(filter)处理较为复杂的变量的实例

    简述:django 在views中有数据需要通过字典(dict)的方式传递给template,该字典中又包含了字典,而且字典中的键值还是一个对象,在template中处理传递过来的数据的时候,字典不能 ...

  7. 最新开源DBLayer,原来数据库操作可以这么简单

    DBLayer,我最近开源的数据库轻量级orm框架,目前支持sqlserver.mysql.oracle, 特别做了分页的封装. 这个框架从七八年前开始逐渐升级而来,也经历了不少项目,希望可以将大家从 ...

  8. websocket学习和使用

    1)WebSocket介绍 HTML5 Web Sockets规范定义了Web Sockets API,支持页面使用Web Socket协议与远程主机进行全双工的通信.它引入了WebSocket接口并 ...

  9. Java 中Calendar、Date、SimpleDateFormat学习总结

    在之前的项目中,经常会遇到Calendar,Date的一些操作时间的类,并且总会遇到时间日期之间的格式转化问题,虽然做完了但是总是忘记,记不清楚,每次还都要查找资料.今天总结一下,加深印象. Cale ...

  10. JMS 之 Active MQ 启动嵌入式Broke

    一.如何启动active MQ 服务 (一).使用命令启动 /bin 目录下 ./activemq start 默认使用conf/activemq.xml 配置文件 b.[root@localhost ...