HDOJ1002
#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的更多相关文章
- HDOJ-1002
用java写大数,感觉就是BUG import java.math.*; import java.io.*; import java.util.*; public class Main{ public ...
- 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 ...
- HDOJ-1002 A + B Problem II (非负大整数相加)
http://acm.hdu.edu.cn/showproblem.php?pid=1002 输入的数都是正整数,比较好处理,注意进位. //非负大整数加法 # include <stdio.h ...
- 140730暑期培训.txt
1.大数加减法 思路分析: 1.将数据当做字符串输入(gets(s)) 2.将字符型转换为整型,逆着存 char? int i=0,j ...
- ACM中使用 JAVA v2. 1
ACM中使用JAVA v2.1 严明超 (Blog:mingchaoyan.blogbus.com Email:mingchaoyan@gmail.com) 0.前 言 文前声明:本文只谈java用于 ...
随机推荐
- C/C++ 位操作
C/C++对位操作有如下方法: <1>位操作运算符(注意:下面几个运算符不改变原来的变量的值,只是获得运算的结果即一个新值) 按位取反:~ 位与:& 位或:| 位异或:^ 左移位运 ...
- vue 组件高级用法实例详解
一.递归组件 组件在它的模板内可以递归地调用自己, 只要给组件设置name 的选项就可以了. 示例如下: <div id="app19"> <my-compone ...
- BZOJ 2331 [SCOI2011]地板 ——插头DP
[题目分析] 经典题目,插头DP. switch 套 switch 代码瞬间清爽了. [代码] #include <cstdio> #include <cstring> #in ...
- 刷题总结——art2(ssoj)
题目: 题解: o(n)复杂度扫一遍再用一个stack维护就可以了·····mdzz这道题都不会做·· 代码: #include<iostream> #include<cstdio& ...
- laravel 查询构造器2
//查询构造器 public function query() { //获取所有的数据 $student = DB::table('student')->get(); var_dump($stu ...
- android studio AndroidManifest
一.目录结构 1. AndroidManifest.xml 它是一个清单文件,提供应用的基本信息 <?xml version="1.0" encoding="utf ...
- (4)Swing布局
一.FlowLayout-流布局 新增第一个组件后默认在第一行的居中位置,之后 组件按照加入的先后顺序按照设置的对齐方式从左向右排列 二.borderLayout-边框布局 容器划分为东.西.南.北. ...
- MySQL的LOOP, LEAVE 和ITERATE语句(类似Continue、Break的写法)
和REPEAT和while语句不同,LOOP.LEAVE.ITERATE更像其他编程语言中的goto语句. LOOP要设定一个label指定循环的开始位置,而LEAVE则像其他语言中的Break会离开 ...
- let与const命令
(需要注意的地方) 1.ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. 2.for循环还有一个特别之处,就是设置循环变量的那部分是一 ...
- [NOIP2012T3]开车旅行
题目描述 NOIP 2012 提高组 题3小 A 和小 B 决定利用假期外出旅行,他们将想去的城市从 1 到 N 编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 ...