大数相加(类似杭电acm1002)
/*输入两个非常大的整数(完全超出了int、long的表示范围),这个整数的长度可能超过100位,计算并输出这两个数相加的结果。*/
//自己用题目所给的案例测试,输出是正确的,也能输出正确的结果,不知道为什么提交以后一直wa,(如果有人测试了我代码以后知道我wa的原因请评论中提出哦,十分感谢),但是算法思想应该是对的,也参考了其他人的博客,(http://blog.csdn.net/hackbuteer1/article/details/6667026的大数相加的题目)
我的代码如下:
//大数相加
#include<stdio.h>
#include<string.h>
#define N 1010
char a[N], b[N], c[N];
int sum[N];
int main()
{
	int len1, len2, m, k, temp, len;
	int i, j;
	int test;
 	while (scanf("%d", &test) != EOF)
	{
		for (int index = 0; index < test; index++)
		{
			scanf("%s%s", a, b);
			len1 = strlen(a);len2 = strlen(b);
			if (len1 < len2)//确保字符串a不短于字符串b
			{
				strcpy(c, a);strcpy(a, b);strcpy(b, c);
				m = len1;len1 = len2;len2 = m;
			}
			k = m = 0;temp = 0;len = 0;
			for (i = len1 - 1, j = len2 - 1; i >= 0; i--, j--)//从低位开始相加,模拟手工运算,逐位相加
			{
				if (j < 0)
				{
					temp = a[i] - '0' + m;
				}
				else
				{
					temp = a[i] - '0' + b[j] - '0' + m;
				}
				sum[k++] = temp % 10;
				m = temp / 10;//进位
			}
			len = k;//len用来记录sum的长度
			if (m > 0)//如果加完还有进位m,则加在sum的高位
			{
				len++;
				sum[len - 1] = m;
			}
			int cnt=index+1;
			printf("Case %d:\n", cnt);
			printf("%s + %s = ", a, b);
			//从低位开始输出
			for (i = len - 1; i >= 0; i--)
			{
				printf("%d", sum[i]);
			}
			if (index<test)
				printf("\n\n");
			else
				printf("\n");
			/*if (m>0)
			{
			//printf("%d", m);
			sum[k] = m;
			printf("Case %d:\n", ++index);
			printf("%s + %s = ", a, b);
			for (i = k ; i >= 0; i--)
			{
			printf("%d", sum[i]);
			}
			}
			else
			{
			printf("Case %d:\n", ++index);
			printf("%s + %s = ", a, b);
			for (i = k-1; i >= 0; i--)
			{
			printf("%d", sum[i]);
			}
			}
			printf("\n");
			*/
		}
	}
		return 0;
}
大数相加(类似杭电acm1002)的更多相关文章
- 大数相加-----杭电acm1002
		
#include<stdio.h> #include<string.h> int main() { ], ch2[]; ], num2[]; ; scanf("%d& ...
 - 杭电ACM1002
		
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1002 #include <stdio.h> #include <string.h> ...
 - Help Johnny-(类似杭电acm3568题)
		
Help Johnny(类似杭电3568题) Description Poor Johnny is so busy this term. His tutor threw lots of hard pr ...
 - 杭电ACM(1002) -- A + B Problem II 大数相加 -提交通过
		
杭电ACM(1002)大数相加 A + B Problem II Problem DescriptionI have a very simple problem for you. Given two ...
 - SCAU1143 多少个Fibonacci数--大菲波数【杭电-HDOJ-1715】--高精度加法--Fibonacci数---大数比较
		
/*******对读者说(哈哈如果有人看的话23333)哈哈大杰是华农的19级软件工程新手,才疏学浅但是秉着校科联的那句“主动才会有故事”还是大胆的做了一下建一个卑微博客的尝试,想法自己之后学到东西都 ...
 - 杭电acm 1002 大数模板(一)
		
从杭电第一题开始A,发现做到1002就不会了,经过几天时间终于A出来了,顺便整理了一下关于大数的东西 其实这是刘汝佳老师在<算法竞赛 经典入门 第二版> 中所讲的模板,代码原封不动写上的, ...
 - 杭电ACM分类
		
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
 - 杭电ACM 1297 Children’s Queue
		
这道题是排序问题,可以用递归方法解决. 计算F(n): 一:当最后一个是男孩M时候,前面n-1个随便排出来,只要符合规则就可以,即是F(n-1): 二:当最后一个是女孩F时候,第n-1个肯定是女孩F, ...
 - 『ACM C++』HDU杭电OJ | 1418 - 抱歉 (拓扑学:多面体欧拉定理引申)
		
呕,大一下学期的第一周结束啦,一周过的挺快也挺多出乎意料的事情的~ 随之而来各种各样的任务也来了,嘛毕竟是大学嘛,有点上进心的人多多少少都会接到不少任务的,忙也正常啦~端正心态 开心面对就好啦~ 今天 ...
 
随机推荐
- Hystrix-Dashboard仪表盘
			
Hystrix Dashboard,它主要用来实时监控Hystrix的各项指标信息.通过Hystrix Dashboard反馈的实时信息,可以帮助我们快速发现系统中存在的问题.下面通过一个例子来学习. ...
 - JavaScript Hoisting
			
Hoisting is JavaScript's default behavior of moving all declarations to the top of the current scope ...
 - BST,AVL,B,B+,B*,红黑树
			
BST(右)和AVL(左) 比较:AVL树每个结点的左右子树的深度差的绝对值不大于1 B - tree 特点:所有结点都包含数据信息,不同查询的效率不同,特殊的:二阶B树就是AVL,三阶B树就是2-3 ...
 - HashiCorp Vault介绍
			
HashiCorp Vault是一款企业级私密信息管理工具.说起Vault,不得不提它的创造者HashiCorp公司.HashiCorp是一家专注于DevOps工具链的公司,其旗下明星级产品包括Vag ...
 - 【nginx】nginx解决跨域详解
			
使用场景:本地运行一个项目,但是要访问外域的api接口,存在跨域问题,解决方式有很多,但我尝试用nginx解决,搜索了网上文章后再加上尝试终于成功, 其中一些注意事项和大家分享一下. 一.window ...
 - CSS 自动隐藏文字并添加省略号
			
.cut { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; -o-text-overflow:ellipsis; -icab ...
 - Codeforce A. Quasi-palindrome
			
A. Quasi-palindrome time limit per test 1 second memory limit per test 256 megabytes input standard ...
 - H5WebSocket消息推送
			
1.效果图 2.前端代码 @{ ViewBag.Title = "Home Page"; } @*HTML5 WebSocket WebSocket是HTML5开始提供的一种在单个 ...
 - 应用ntpdate小工具同步时间
			
应用ntpdate小工具同步时间: ntpdate pool.ntp.org 中国的时间服务器有: ntpdate .cn.pool.ntp.org ntpdate .asia.pool.ntp.or ...
 - HttpURLConnection用法
			
在SDK中的URLConnection链接Servlet的问题 1.URL的请求分类GET和POST GET请求可以获取页面静态的值,参数放URL后,传给Serverlct POST的参数是存放于ht ...