题目描述

求2个浮点数相加的和
题目中输入输出中出现浮点数都有如下的形式:
P1P2...Pi.Q1Q2...Qj
对于整数部分,P1P2...Pi是一个非负整数
对于小数部分,Qj不等于0

输入

对于每组案例,第1行是测试数据的组数n,每组测试数据占2行,分别是两个加数。
每组测试数据之间有一个空行,每行数据不超过100个字符

输出

每组案例是n行,每组测试数据有一行输出是相应的和。
输出保证一定是一个小数部分不为0的浮点数

样例输入

2
3.756
90.5644543.5435
43.25

样例输出

94.32
4586.7935

易错

  1. 输入0.0 + 0.0 = 0.0
  2. 字符数组增加或者减少后要加'\0'作为结束标志。(切记切记切记)
    #include<stdio.h>
    #include<math.h>
    #include<algorithm>
    #include<string.h>//memset的头文件
    using namespace std;
    struct bign
    {int d[101];//数组要开的足够大,切记切记,这里错误了一次int len ;//总长度bign(){memset(d,0, sizeof(d));len = 0;}
    };
    int Find(char s[])//返回小数点的位数
    {for(int i=0; i<strlen(s); i++){if(s[i]=='.')return strlen(s)-i-1;}
    }
    bign change(char s[])//将字符串转换为整型
    {bign a;for(int i=strlen(s)-1; i>=0; i--){if(s[i]!='.')a.d[a.len++] = s[i]-'0';}return a;}
    bign add(bign a, bign b)
    {bign c;int carry = 0, temp;for(int i=0; i<a.len||i<b.len; i++){temp = a.d[i] + b.d[i] + carry;c.d[c.len++] = temp % 10;carry = temp /= 10;}if(carry!=0)c.d[c.len++]= carry;return c;
    }
    int main()
    {int n;scanf("%d",&n);getchar();while(n--){char s1[101], s2[102];scanf("%s %s", s1, s2);int len1 = Find(s1),len2 = Find(s2), t=0, pindex;pindex = max(len1, len2);if(len1<len2) //len2++{t = strlen(s1);for(int i=0; i<len2-len1; i++)s1[t++] = '0';s1[t] = '\0';}else //len1 >= len2{t = strlen(s2);for(int i=0; i<len1-len2; i++)s2[t++] = '0';s2[t] = '\0';//切记切记切记,字符数组要加'\0'}bign a, b;a = change(s1);b = change(s2);bign ans = add(a, b);for(int i=ans.len-1; i>=pindex; i--)//输出整数部分printf("%d",ans.d[i]);printf(".");//小数部分0~pindex-1int i;for(i=0; i<pindex; i++){if(ans.d[i]!=0)break;}for(int j=pindex-1; j>=i;j--)printf("%d",ans.d[j]);if(i==pindex)printf("0");printf("\n");getchar();//接受空行}return 0;
    }
    /**/
    

【算法笔记5.6小节 -大整数运算 】问题 C: 浮点数加法相关推荐

  1. java 大整数编程_Java编程--RSA算法中的大整数运算

    Java编程–RSA算法中的大整数运算 RSA原理浅析 RSA是利用陷门单向函数实现的,其安全基础依赖于大整数的分解问题的难解性 算法过程 为了加深对RSA算法的了解,接下来通过简单的一个例子来分析一 ...

  2. C++ 大整数运算 高精度除法

    前言 这篇文章主要是对于大整数类的设计过程中,如何实现并改进长除法(模拟竖式法)的一个总结. 高精度除法的分类和比较 虽然有些文章在讨论大整数的除法运算时,喜欢分成高精度除以高精度和高精度除以低精度( ...

  3. 九度OJ 1037:Powerful Calculator(强大的计算器) (大整数运算)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1821 解决:528 题目描述: Today, facing the rapid development of business, SJTU ...

  4. 算法笔记习题 2-9小节

    算法笔记@Ada_Lake 算法笔记代码保留地~~~ 2.9小节--C/C++快速入门->补充 有关cin 和 cout cout 中控制 double型 的精确度 - 1. 加入#includ ...

  5. 随手记——大整数运算模板(进化史)

    大整数相加.相乘 2019年2月23日09:46:21 基本上没有空间浪费.关键是思路清晰,实现起来方便,字符串倒过来放到vector里(倒过来 方便进位运算),然后做完运算再逆序回来. 关于乘法运算 ...

  6. A1136 | 字符串处理、大整数运算

    题目链接: https://www.patest.cn/contests/pat-a-practise/1136 今天是12月17号.最近这几天都有点不在状态.已经整整一周没有练算法了,自从12.3考 ...

  7. 算法笔记习题 7-1小节

    算法笔记@Ada_Lake 算法笔记代码保留地~~~ 7.1小节--提高篇->数据结构专题->栈的应用 首先讲了一下栈的定义.即栈就通俗而言即先进先出.每个栈都有一个栈顶指针来指向栈的最上 ...

  8. C语言 大整数运算(加、减、乘)

    题目:大整数计算 背景介绍: 大整数一般指超过十尾的十进制整数,假定不超过五十位.这类大整数在C语言系统中因超界溢出而不能直接表达或计算. 实现方法: 以字符串形式输入.输出和存放大整数,计算时可以将 ...

  9. 大整数运算(高精度运算)C/C++

    前言 这种类型,在做题过程中多为观察所给数据可能造成的大小来选择是否使用. 属于模板类型,学习者理解其格式并记住大致框架即可熟练应用. 一.什么是大整数(高精度) 想知道什么是大整数,不如换一个解释的 ...

最新文章

  1. vue中textarea标签自适应高度
  2. linux 修改时区_【003】一文全面掌握Linux初始化进程(超详细)
  3. 欠122亿乐视能不能“真还”?数据拆解乐视债务账单
  4. 【NLP】不讲武德,只用标签名就能做文本分类
  5. 拉格朗日插值的优缺点_拉格朗日与牛顿插值法的比较
  6. cJONS序列化工具解读二(数据解析)
  7. mysql optimizer mrr_[转] MySQL 的 MRR 到底是什么?
  8. 7收不到邮件 contact form_Contact Form 7基本使用教程
  9. 如何解决苹果Mac安装Axure首次打开报错的问题?
  10. HDU3853:LOOPS
  11. J2EE学习总结(五)------用户登录界面设计
  12. Symbian证书级别对应功能
  13. python 将excel文件转换为txt文件_python实现Excel文件转换为TXT文件
  14. VC++6.0 内存泄露调试
  15. 个人名片+微信名片二维码 VUE
  16. 解决在mysql官网下载慢的问题
  17. dbus-glib编程2:d-feet的使用
  18. 平均获客成本_互联网金融获客成本
  19. 【名字无关紧要,实战才是唯一】——吾神·娜迦卡布洛斯
  20. 用HTMLParser解析html时报错:No module named 'htmlentitydefs'

热门文章

  1. android button背景图片不拉伸的一种处理方法
  2. 正好杠杆炒股大盘缩量开门红后
  3. Winamp 十周年纪念版 5.5 正式发布
  4. Python存储MP3信息
  5. Kafka生产与消费脚本工具
  6. 泰坦之路手机版怎么登陆服务器未响应,泰坦之旅无法连接服务器是什么原因
  7. Semi-Supervised Semantic Image Segmentation with Self-correcting Networks_CVPR2020
  8. linux ffmpeg批量转换,linux使用ffmpeg转换音频格式
  9. Android 折叠屏就要来了
  10. 干货:一文看懂网络爬虫实现原理与技术(值得收藏)