大明A+B(大数相加)解题报告
这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。
现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。
每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。
1.1111111111 2.3444323343
1 1.1
3.4555434454
2.1
#include<stdio.h>
#include<string.h>
int main()
{
char a[410],b[410];
int a1[410],a2[410],b1[410],b2[410],p1,p2,lena,lenb,i,j,point1,point2;
while(scanf("%s%s",a,b)!=EOF)
{
memset(a1,0,sizeof(a1));//整数
memset(a2,0,sizeof(a2));//小数
memset(b1,0,sizeof(b1));//整数
memset(b2,0,sizeof(b2));//小数
lena=strlen(a);
lenb=strlen(b);
p1=lena;
for(i=0;i<lena;i++){
if(a[i]=='.'){
p1=i; //整数长度
break;
}
}
p2=lenb;
for(i=0;i<lenb;i++){
if(b[i]=='.'){
p2=i; //整数长度
break;
}
}
for(i=0;i<p1;i++){
a1[p1-1-i]=a[i]-'0'; // 整数转移 (倒置)
}
for(j=0,i=p1+1;i<lena;i++,j++){
a2[j]=a[i]-'0'; //小数转移
}
for(i=0;i<p2;i++){
b1[p2-1-i]=b[i]-'0'; // 整数转移 (倒置)
}
for(j=0,i=p2+1;i<lenb;i++,j++){
b2[j]=b[i]-'0'; //小数转移
}
for(i=400;i>0;i--){ //小数相加
a2[i]=a2[i]+b2[i];
if(a2[i]>=10){
a2[i]-=10;
a2[i-1]++;
}
}
a2[i]=a2[i]+b2[i];
if(a2[i]>=10){
a2[i]-=10;
a1[0]++;
}
point1=-1;
for(i=400;i>=0;i--){ //小数除去后导0
if(a2[i]!=0){
point1=i; //找到小数最末尾不为0的位置
break;
}
}
lena=p1;lenb=p2;
int len=lena>lenb?lena:lenb; //整数相加
for(i=0;i<len;i++){
a1[i]+=b1[i];
if(a1[i]>=10){
a1[i]-=10;
a1[i+1]++;
}
}
point2=0;
for(j=i;j>=0;j--){ //判断、除去前导0
if(a1[j]!=0){
point2=1;
}
if(point2){
printf("%d",a1[j]);
}
}
if(point2==0){
printf("0");
}
if(point1!=-1){
printf(".");
for(i=0;i<=point1;i++){
printf("%d",a2[i]);
}
}
printf("\n");
}
return 0;
}
终于搞腚了
大明A+B(大数相加)解题报告的更多相关文章
- LeetCode :2.两数相加 解题报告及算法优化思路
题目连接:2.两数相加 题意 题目难度标为 中等, 因为题意上有一部分理解难度,以及需要数据结构的链表基础. 还不知道到链表的童鞋可以粗略的看下百度百科或者是翻出数据结构的书看一看,通俗一点的语言来解 ...
- 洛谷 P3332 [ZJOI2013]K大数查询 解题报告
P3332 [ZJOI2013]K大数查询 题目描述 有\(N\)个位置,\(M\)个操作.操作有两种,每次操作如果是\(\tt{1\ a\ b\ c}\)的形式表示在第\(a\)个位置到第\(b\) ...
- LeetCode 2 Add Two Sum 解题报告
LeetCode 2 Add Two Sum 解题报告 LeetCode第二题 Add Two Sum 首先我们看题目要求: You are given two linked lists repres ...
- LeetCode 1 Two Sum 解题报告
LeetCode 1 Two Sum 解题报告 偶然间听见leetcode这个平台,这里面题量也不是很多200多题,打算平时有空在研究生期间就刷完,跟跟多的练习算法的人进行交流思想,一定的ACM算法积 ...
- poj1173 解题报告
poj1173 解题报告2013-07-21 13:31 by 期待 ., 42 阅读, 0 评论, 收藏, 编辑 http://poj.org/problem?id=1173 发现此题资料甚少,斗胆 ...
- HDU-2032解题报告
Hdu-2032解题报告题意:实现给定行数的杨辉三角的输出. 杨辉三角的特点:每一行数据的开头和结尾是1,然后其他的数据是由其上一个数据与其左上角的数据之和组成11 11 2 11 3 3 11 4 ...
- LeetCode - 167. Two Sum II - Input array is sorted - O(n) - ( C++ ) - 解题报告
1.题目大意 Given an array of integers that is already sorted in ascending order, find two numbers such t ...
- ACM-ICPC 2017 Asia HongKong 解题报告
ACM-ICPC 2017 Asia HongKong 解题报告 任意门:https://nanti.jisuanke.com/?kw=ACM-ICPC%202017%20Asia%20HongKon ...
- USACO Section2.1 The Castle 解题报告
castle解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- Leetcode 115 Distinct Subsequences 解题报告
Distinct Subsequences Total Accepted: 38466 Total Submissions: 143567My Submissions Question Solutio ...
随机推荐
- Unity shader学习之逐像素漫反射光照模型
shader如下: Shader "Custom/Diffuse Fragment-Level" { Properties { _Diffuse (,,,) } SubShader ...
- QT5 QT4--LNK2019 无法解析的外部符号
新创建的工程 #include <QtWidgets/QApplication> #include <QtWidgets/QWidget> #include <QtWid ...
- Nginx技术研究系列2-基于Redis实现动态路由
上篇博文我们写了个引子: Ngnix技术研究系列1-通过应用场景看Nginx的反向代理 发现了新大陆,OpenResty OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台 ...
- 【Hadoop学习之十】MapReduce案例分析二-好友推荐
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 最应该推荐的好友TopN,如何排名 ...
- JsonPath:从多层嵌套Json中解析所需要的值
问题 应用中,常常要从嵌套的JSON串中解析出所需要的数据.通常的做法是,先将JSON转换成Map, 然后一层层地判空和解析.可使用 JsonPath 来解决这个问题. 给定一个 JSON 串如下所示 ...
- 微信小程序制作家庭记账本之六
第六天,自己根据样本代码做的记账本可实现添加账目,删除账目和消费总和,实机可以测试,但是没有域名,别人无法访问.
- jenkins1
持续集成工具: Jenkins 和 Hudson是同源的. 甲骨文和开源社区之间的关系破裂,该项目被分成两个独立的项目. Jenkins:由大部分原始开发人员组成,Hudson:由甲骨文公司继续管理 ...
- centos安装angr
1.angr环境 yum install -y python-dev libffi-dev build-essential virtualenvwrapper mkvirtualenv angr 问题 ...
- IPERF 网络性能测试
Iperf 是一个网络性能测试工具.Iperf可以测试最大TCP和UDP带宽性能.Iperf具有多种参数和UDP特性,可以根据需要调整.Iperf可以报告带宽,延迟抖动和数据包丢失. Iperf 参数 ...
- MyEclipse配置Struts2的本地工作空间中的DTD约束文件
1.拷贝URI http://struts.apache.org/dtds/struts-2.3.dtd 2.配置XML Catalog 3.struts-2.3.dtd文件来源 解压jar包\Web ...