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;
}
分享到:
相关推荐
大数相加
### 杭电ACM1002解题分析与代码详解 #### 题目背景与解析 根据题目描述及代码内容,我们可以推断出这是一道关于大数加法处理的问题。通常情况下,整数的加法可以直接通过内置类型(如`int`或`long long`)来实现,...
### Hdu1002:字符串加法 这是一道关于字符串操作和大数加法的题目。由于整型变量可能不足以存储非常大的数字,因此使用字符串来表示大数,通过字符数组进行位运算实现加法。代码中首先将输入的两个字符串转换成...
例如,对于文件"HDU 1002 C╱C++代码.txt",我们可以看到典型的解决A+B问题的代码模板: ```cpp #include using namespace std; int main() { int a, b; cin >> a >> b; // 输入两个整数 cout ; // 输出它们的...
HDU_ACM_1002_大数相加C源代码,利用字符串处理
#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]<q[0])len=q[0] else len=p[0] for(i=1 i<=len i++) { sum[i]+=q[i]+p[i] if...
在该文件中,3 大数相加 hdu 1002是一个典型的大数相加问题,要求使用数组来存储每个数字的每一位,然后使用循环来逐步相加。解题时需要注意进位问题,并使用 flag 变量来记录进位信息。 4. 库函数: 库函数是一种...
2. C 语言实验题——两个数比较(1002):本题目是关于C语言基础知识的应用,需要使用基本的比较运算符来解决问题。 知识点:C语言基础知识、比较运算符 3. 1、2、3、4、5... 简单题(1003):本题目是关于简单的...
2. **1002 C语言实验题——两个数比较** - **知识点**: 条件语句、数值比较。 - **描述**: 比较两个数的大小。 - **难度级别**: 入门级。 - **解题思路**: 使用条件语句 (if...else) 进行判断。 3. **1003 1、2...
### hdoj1002——大整数相加 #### 题目背景与目的 本题目来源于杭州电子科技大学的在线评测系统(HDOJ),编号为1002的大整数相加问题。该题目主要考察的是编程者对于大整数处理的基本技巧以及对数组、循环等基础...
4. 1002.cpp: 由于题目编号较低,这个问题可能是入门级别的,可能涉及到基础的数学计算、数组操作或者简单的排序算法。 5. 1026.cpp: 可能涉及到复杂度较高的算法,例如动态规划、回溯法或线性规划。这种题目通常...
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++ ...
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++ ...
1001 计算直线的交点数 1002 FatMouse's Speed1003 Common Subsequence1004 Max Sum 1005 Super Jumping! Jumping! Jumping! 1006 免费馅饼 1007 Humble Numbers1008 Monkey and Banana 1009 龟兔赛跑 1010 数塔
6. **模拟与回溯**:"1002.cpp"可能涉及到模拟法或回溯法,这两种方法常用于解决组合优化问题或搜索问题。 每一道ACM题目背后都蕴含着独特的算法思想和编程技巧,通过阅读和理解这些代码,菜鸟们可以深入理解算法的...