大数加法~HDU 1002 A + B Problem II
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1002
题意:
数学题,A+B;
思路,这个数非常大,普通加法一定会超时,所以用大数加法。大数加法的基本思路是模拟我们做加法的时候的进位思想,从最低位开始模拟,
在我的代码里
v -- 进位, tmp -- 当前位2个数的和,k -- 答案数组的下标。
其中, tmp/10 可以得到要进的位数, 同理,tmp%10可以得到个位,就是答案数组对应的位
下面是AC代码:
#include <iostream>
#include <cstdio>
#include <string.h> using namespace std;
const int MX = +;
char a[MX], b[MX];
int c[MX]; int main()
{
int cas = ;
int T;
scanf("%d", &T);
while(T--)
{
memset(a, , sizeof(a));
memset(b, , sizeof(b));
memset(c, , sizeof(c));
scanf("%s %s", &a, &b);
int lena = strlen(a);
int lenb = strlen(b);
int tmp;
int v = , k = ;
for(int i = lena-, j = lenb-;; --i, --j)
{
if(i < && j < ) break;
if(i < ) tmp = b[j]-''+v;
else if(j < ) tmp = a[i]-''+v;
else tmp =(a[i]-'')+(b[j]-'')+v;
c[k] = tmp % ; //取个位
v = tmp/; //取要进的位
if(((i == )&&(j <= ) || (j == )&&(i <= )) && v != ) c[++k] = v;
k++;
}
printf("Case %d:\n", ++cas);
printf("%s + %s = ", a, b);
for(int i = k-; i >= ; --i) printf("%d", c[i]);
if(T) printf("\n\n");
else printf("\n");
}
}
如有疑问,欢迎评论指出!
大数加法~HDU 1002 A + B Problem II的更多相关文章
- 抓起根本(二)(hdu 4554 叛逆的小明 hdu 1002 A + B Problem II,数字的转化(反转),大数的加法......)
数字的反转: 就是将数字倒着存下来而已.(*^__^*) 嘻嘻…… 大致思路:将数字一位一位取出来,存在一个数组里面,然后再将其变成数字,输出. 详见代码. while (a) //将每位数字取出来, ...
- hdu 1002 A + B Problem II【大数加法】
题目链接>>>>>> 题目大意:手动模拟大数加法,从而进行两个大数的加法运算 #include <stdio.h> #include <strin ...
- HDU 1002 A + B Problem II(高精度加法(C++/Java))
A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDU 1002 A + B Problem II
A + B Problem II Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16104 Accepted ...
- HDU 1002 A + B Problem II(大整数相加)
A + B Problem II Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u De ...
- HDU 1002 A + B Problem II (大数加法)
题目链接 Problem Description I have a very simple problem for you. Given two integers A and B, your job ...
- hdu 1002 A + B Problem II(大数)
题意:就是求a+b (a,b都不超过1000位) 思路:用数组存储 第一道大数的题目,虽然很水,纪念一下! 代码: #include<cstdio> #include<cstring ...
- HDU 1002 A + B Problem II( 高精度加法水 )
链接:传送门 题意:A + B 高精度,板子题 /************************************************************************* & ...
- HDU 1002 - A + B Problem II - [高精度]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 Problem DescriptionI have a very simple problem ...
随机推荐
- kaldi chain模型的序列鉴别性训练代码分析
chainbin/nnet3-chain-train.cc int main(int argc, char *argv[]) { ... Nnet nnet; ReadKaldiObject(nnet ...
- java中几种加/解密API
如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorit ...
- hibernate原生sql获取list<T>异常解决
/** * <p>Title: getbigestMinIntegral</p> * <p>Description: 获取最大的MinIntegral(原则上即最高 ...
- spring cloud 学习笔记(1)
SpringCloud + Eureka / Nacos git:https://github.com/huanmsf/springCloudLearn.git 项目目录: 父pom: <?xm ...
- Mathematica/偏导数/最小二乘法(线性回归)
a = / a //输出的还是2/123 N[a] //输出的就是小数点 N[a,] //保留三位小数点 Clear[a] Solve[== x^- , x] //结果-3 和 3 Plot[Sin[ ...
- 团队作业第六次-团队Github实战训练
格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目系统设计与数据库设计 团队名称:为了交项目干杯 GitHub地址:地址 作业目标:搭建一个相对公平公正的抽奖系统,根据QQ聊天记录, ...
- java--序列化和反序列化
一.序列化 java序列化的过程是把对象转换为字节序列的过程 序列化的两种用途: 1)把对象的字节序列永久保存大搜硬盘上,通常存放到一个文件中 2)在网络上传送对象的字节序列 jdk中的序列化API: ...
- 03中间件mycat对pxc集群的分片处理
安装第二个pxc集群 作为mycat的第二个分片 直接拷贝其中的一个虚拟机,然后还原到最初的状态,这样会小很多,启动改一下IP和基础配置,然后再次拷贝这个虚拟机两份改IP重启即可 正常安装pxc集群即 ...
- lambda-基于谓词筛选值序列
此方法通过使用延迟执行实现. 即时返回值为一个对象,该对象存储执行操作所需的所有信息. 只有通过直接调用对象的 GetEnumerator 方法或使用 Visual C# 中的 foreach(或 V ...
- 解决springboot启动失败问题:Unable to start embedded container;
将一个springboot项目导入到eclipse后,启动时报错Unable to start embedded container,以下时全部错误信息: Application startup fa ...