`
Dev|il
  • 浏览: 126241 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

HDU1002

 
阅读更多
http://acm.hdu.edu.cn/showproblem.php?pid=1002
#include <stdio.h>
#include <string.h>

#define MAX 2000

char a[MAX], b[MAX];
int c[MAX];

int atoi(char c)
{
	return c - '0';
}
//算法思路:用数组保存大整数,然后模拟加法
int main()
{
	int t, i, j, k, l, cnt;
	scanf("%d", &t);
	for(i = 1; i <= t; i++)
	{
		scanf("%s%s", a, b);
		int alen = strlen(a);
		int blen = strlen(b);
		cnt = 0;
		for(j = alen - 1, l = blen - 1, k = 0; j >= 0 && l>= 0; j--,l--)
		{
			c[k++] = (cnt + atoi(a[j]) + atoi(b[l])) % 10;
			cnt = (cnt + atoi(a[j]) + atoi(b[l])) / 10;
		}
		while(j >= 0)
		{
			if(cnt != 0)
			{
				c[k++] = (cnt + atoi(a[j])) % 10;
				cnt = (cnt + atoi(a[j])) / 10;
			}else
			{
				c[k++] = atoi(a[j]);
			}
			j--;
		}
		while(l >= 0)
		{
			if(cnt != 0)
			{
				c[k++] = (cnt + atoi(b[l])) % 10;
				cnt = (cnt + atoi(b[l])) / 10;
			}else
			{
				c[k++] = atoi(b[l]);
			}
			l--;
		}
		if(cnt != 0)
		{
			c[k++] = cnt;
		}
		printf("Case %d:\n%s + %s = ", i, a, b);
		k--;
		while(k >= 0)
		{
			printf("%d", c[k]);
			k--;
		}
		printf("\n");
		if(i != t)
			printf("\n");
	}
	return 0;
}
分享到:
评论

相关推荐

    hdu1002大数相加

    大数相加

    杭电ACM1002解题答案

    ### 杭电ACM1002解题分析与代码详解 #### 题目背景与解析 根据题目描述及代码内容,我们可以推断出这是一道关于大数加法处理的问题。通常情况下,整数的加法可以直接通过内置类型(如`int`或`long long`)来实现,...

    ACM入门十题(杭电oj)

    ### Hdu1002:字符串加法 这是一道关于字符串操作和大数加法的题目。由于整型变量可能不足以存储非常大的数字,因此使用字符串来表示大数,通过字符数组进行位运算实现加法。代码中首先将输入的两个字符串转换成...

    3-杭电A+B题目C╱C++参考代码.rar

    例如,对于文件"HDU 1002 C╱C++代码.txt",我们可以看到典型的解决A+B问题的代码模板: ```cpp #include using namespace std; int main() { int a, b; cin &gt;&gt; a &gt;&gt; b; // 输入两个整数 cout ; // 输出它们的...

    HDU_ACM_1002_大数相加C源代码

    HDU_ACM_1002_大数相加C源代码,利用字符串处理

    hdu1297.rar_SUM_hdu1297

    #define m 1002 int f[m][70]={{1,1},{1,1},{1,2},{1,4}} void add(int p[],int q[],int sum[]) { int i,len if(p[0]&lt;q[0])len=q[0] else len=p[0] for(i=1 i&lt;=len i++) { sum[i]+=q[i]+p[i] if...

    ACM知识点.docx

    在该文件中,3 大数相加 hdu 1002是一个典型的大数相加问题,要求使用数组来存储每个数字的每一位,然后使用循环来逐步相加。解题时需要注意进位问题,并使用 flag 变量来记录进位信息。 4. 库函数: 库函数是一种...

    HDU题目分类

    2. C 语言实验题——两个数比较(1002):本题目是关于C语言基础知识的应用,需要使用基本的比较运算符来解决问题。 知识点:C语言基础知识、比较运算符 3. 1、2、3、4、5... 简单题(1003):本题目是关于简单的...

    hdu题目分类

    2. **1002 C语言实验题——两个数比较** - **知识点**: 条件语句、数值比较。 - **描述**: 比较两个数的大小。 - **难度级别**: 入门级。 - **解题思路**: 使用条件语句 (if...else) 进行判断。 3. **1003 1、2...

    hdoj1002——大整数相加

    ### hdoj1002——大整数相加 #### 题目背景与目的 本题目来源于杭州电子科技大学的在线评测系统(HDOJ),编号为1002的大整数相加问题。该题目主要考察的是编程者对于大整数处理的基本技巧以及对数组、循环等基础...

    hdoj解题代码

    4. 1002.cpp: 由于题目编号较低,这个问题可能是入门级别的,可能涉及到基础的数学计算、数组操作或者简单的排序算法。 5. 1026.cpp: 可能涉及到复杂度较高的算法,例如动态规划、回溯法或线性规划。这种题目通常...

    leetcode中国-ACM-Learning:ACM竞赛中关于算法的代码

    1002 1003 1004 1006 1007 专题分类 (一)简单搜索 ID Problem C++ Source 1 HDU 2553 (精简版) 2 HDU 1312 3 POJ 3984 4 POJ 2251 5 POJ 3278 6 POJ 3279 7 ZOJ 1002 8 POJ 1321 9 HDU 1241 (二)树 ID Problem C++ ...

    leetcode中国-Homo-sapiens-ACM-Learning:智人-ACM-学习

    1002 1003 1004 1006 1007 专题分类 (一)简单搜索 ID Problem C++ Source 1 HDU 2553 (精简版) 2 HDU 1312 3 POJ 3984 4 POJ 2251 5 POJ 3278 6 POJ 3279 7 ZOJ 1002 8 POJ 1321 9 HDU 1241 (二)树 ID Problem C++ ...

    JSU_动态规划_dp1

    1001 计算直线的交点数 1002 FatMouse's Speed1003 Common Subsequence1004 Max Sum 1005 Super Jumping! Jumping! Jumping! 1006 免费馅饼 1007 Humble Numbers1008 Monkey and Banana 1009 龟兔赛跑 1010 数塔

    上百道ACM的代码实现

    6. **模拟与回溯**:"1002.cpp"可能涉及到模拟法或回溯法,这两种方法常用于解决组合优化问题或搜索问题。 每一道ACM题目背后都蕴含着独特的算法思想和编程技巧,通过阅读和理解这些代码,菜鸟们可以深入理解算法的...

Global site tag (gtag.js) - Google Analytics