E - 浮点数加法

该博客介绍了如何使用C++进行任意长度正小数的加法运算,通过将小数转化为整数进行计算,并删除末尾多余零,处理小数点位置问题。
摘要由CSDN通过智能技术生成

话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫“大明”。
这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。

现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。

Input

本题目包含多组测试数据,请处理到文件结束。
每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。

Output

请在一行里面输出输出A+B的值,请输出最简形式。详细要求请见Sample Output。

Sample Input

1.1 2.9
1.1111111111 2.3444323343
1 1.1

Sample Output

4
3.4555434454
2.1

整体思路:

将小数转化为整数,缺的地方用0补齐,最后再将末尾多余的0删去。

转化的时候要注意小数点位置,最后也要考虑要不要加小数点。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int l1,l2; 
int i1,i2;
int w1;
int w2;
char * cf(char *a1,char *a2){
	
	int l1;
	for(l1=0;;l1++){
		if(a1[l1]>'9'||a1[l1]<'0'){
			l1++;
			break;
		}
	}
	int l2;
		for(l2=0;;l2++){
		if(a2[l2]>'9'||a2[l2]<'0'){
			break;
		}
	}
	//cout<<l1<<" "<<l2<<endl;
//	for(int i=0;i<l2;i++){
//		cout<<a2[i];
//	}
//	cout<<endl;
//printf("%s\n",a2);
	int w;
	if(l1>=l2){
		w=l2;
	}
	else{
		char *b;
		b=a2;
		a2=a1;
		a1=b;
		w
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值