#include <iostream>
#include<stdio.h>
using namespace std;
int main()
{
int T, count_T;
char a[1001], b[1001], ans[1002];
cin >> T;
for(count_T=1; count_T <= T; count_T++) {
cin >> a >> b;

int la=strlen(a)-1, lb=strlen(b)-1, sign=0, i;
for(i=0;la>=0 && lb>=0; la--,lb--,i++) {
sign += a[la] + b[lb] - '0' - '0';
ans[i] = sign % 10;
sign /= 10;
}
for(; la>=0; la--, i++) {
sign += a[la] - '0';
ans[i] = sign % 10;
sign /= 10;
}
for(; lb>=0; lb--, i++) {
sign += b[lb] - '0';
ans[i] = sign % 10;
sign /= 10;
}
if(sign) {
ans[i] = sign;
i++;
}
if(count_T!=1)
printf("\n") ;
printf("Case %d:\n",count_T) ;
printf("%s + %s = ",a,b);
// 正向输入反向输出!!!不必考虑怎么在头位置加进位的问题。
for(i--; i>=0; i--) {
cout << (char)(ans[i] + '0');
}
cout << endl ;
}
return(0);
}

快疯了

#include <stdio.h>

#include<string.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
int j,count;
char a[1001], b[1001], ans[1002];
scanf("%d", &count);
while(j++<count)
{
scanf("%s%s",a, b);

if(j== 1)
printf("Case %d:\n", j);
else
printf("\nCase %d:\n", j);

int la=strlen(a)-1,lb=strlen(b)-1,sign=0,i;
for(i=0;la>=0 && lb>=0; la--,lb--,i++) {
sign += a[la] + b[lb] - '0' - '0';
ans[i] = sign % 10;
sign /= 10;
}
for(; la>=0; la--, i++) {
sign += a[la] - '0';
ans[i] = sign % 10;
sign /= 10;
}
for(; lb>=0; lb--, i++) {
sign += b[lb] - '0';
ans[i] = sign % 10;
sign /= 10;
}
if(sign) {
ans[i] = sign;
i++;
}
// 正向输入反向输出!!!不必考虑怎么在头位置加进位的问题。
printf("%s + %s = ", a, b);
for(i--; i>=0; i--) {
printf("%d", ans[i]);
}

}
return 0;
}

HDOJ1002的更多相关文章

  1. HDOJ-1002

    用java写大数,感觉就是BUG import java.math.*; import java.io.*; import java.util.*; public class Main{ public ...

  2. HDOJ1002题A + B Problem II,2个大数相加

    Problem Description I have a very simple problem for you. Given two integers A and B, your job is to ...

  3. HDOJ-1002 A + B Problem II (非负大整数相加)

    http://acm.hdu.edu.cn/showproblem.php?pid=1002 输入的数都是正整数,比较好处理,注意进位. //非负大整数加法 # include <stdio.h ...

  4. 140730暑期培训.txt

    1.大数加减法    思路分析:        1.将数据当做字符串输入(gets(s))        2.将字符型转换为整型,逆着存            char? int      i=0,j ...

  5. ACM中使用 JAVA v2. 1

    ACM中使用JAVA v2.1 严明超 (Blog:mingchaoyan.blogbus.com Email:mingchaoyan@gmail.com) 0.前 言 文前声明:本文只谈java用于 ...

随机推荐

  1. C/C++ 位操作

    C/C++对位操作有如下方法: <1>位操作运算符(注意:下面几个运算符不改变原来的变量的值,只是获得运算的结果即一个新值) 按位取反:~ 位与:& 位或:| 位异或:^ 左移位运 ...

  2. vue 组件高级用法实例详解

    一.递归组件 组件在它的模板内可以递归地调用自己, 只要给组件设置name 的选项就可以了. 示例如下: <div id="app19"> <my-compone ...

  3. BZOJ 2331 [SCOI2011]地板 ——插头DP

    [题目分析] 经典题目,插头DP. switch 套 switch 代码瞬间清爽了. [代码] #include <cstdio> #include <cstring> #in ...

  4. 刷题总结——art2(ssoj)

    题目: 题解: o(n)复杂度扫一遍再用一个stack维护就可以了·····mdzz这道题都不会做·· 代码: #include<iostream> #include<cstdio& ...

  5. laravel 查询构造器2

    //查询构造器 public function query() { //获取所有的数据 $student = DB::table('student')->get(); var_dump($stu ...

  6. android studio AndroidManifest

    一.目录结构 1. AndroidManifest.xml 它是一个清单文件,提供应用的基本信息 <?xml version="1.0" encoding="utf ...

  7. (4)Swing布局

    一.FlowLayout-流布局 新增第一个组件后默认在第一行的居中位置,之后 组件按照加入的先后顺序按照设置的对齐方式从左向右排列 二.borderLayout-边框布局 容器划分为东.西.南.北. ...

  8. MySQL的LOOP, LEAVE 和ITERATE语句(类似Continue、Break的写法)

    和REPEAT和while语句不同,LOOP.LEAVE.ITERATE更像其他编程语言中的goto语句. LOOP要设定一个label指定循环的开始位置,而LEAVE则像其他语言中的Break会离开 ...

  9. let与const命令

    (需要注意的地方) 1.ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. 2.for循环还有一个特别之处,就是设置循环变量的那部分是一 ...

  10. [NOIP2012T3]开车旅行

    题目描述 NOIP 2012 提高组 题3小 A 和小 B 决定利用假期外出旅行,他们将想去的城市从 1 到 N 编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 ...