hdu 1753 大明 A+B_话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫“大明”。-程序员宅基地

技术标签: 大数  

话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫“大明”。 
这时他已经不是那个只会做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

思路很简单,字符串处理,代码来自《算法设计与实现》,借鉴代码:

#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int main(){
	char s1[401],s2[401];
	int a[401],b[401],c[401],d[401];
	int i,j,k,len1,len2,s,t,num1,num2;
	while(scanf("%s%s",s1,s2)!=EOF){
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));
		memset(c,0,sizeof(c));
		memset(d,0,sizeof(d));
	s=len1=strlen(s1);
	t=len2=strlen(s2);
	for(i=0;i<len1;i++)
	  if(s1[i]=='.'){
	  	s=i;break;}
	for(i=0;i<len2;i++)
	 if(s2[i]=='.'){
	 	t=i;break;}
	 k=0;
	 for(j=s-1;j>=0;j--)
	   a[k++]=s1[j]-'0';
	 k=0;
	 for(j=t-1;j>=0;j--)
	   b[k++]=s2[j]-'0';
	k=1;
	if(s+1<len1)
	  for(j=s+1;j<=len1-1;j++)
	    c[k++]=s1[j]-'0';
	k=1;
	if(t+1<len2)
	  for(j=t+1;j<=len2-1;j++)
	   d[k++]=s2[j]-'0';
	num1=len1-s>len2-t?len1-s:len2-t;
	for(i=num1;i>=1;i--){
		c[i]+=d[i];
		if(c[i]>=10){
			c[i]-=10;
			c[i-1]++;
		}
	}
	num2=s-1>t-1?s-1:t-1;
	a[0]+=c[0];
	for(i=0;i<=num2;i++){
		a[i]+=b[i];
		if(a[i]>=10){
			a[i]-=10;
			a[i+1]++;
		}
	}
	if(a[num2+1]>0)
	   printf("%d",a[num2+1]);
	for(i=num2;i>=0;i--)
	   printf("%d",a[i]);
	for(i=num1;i>=1;i--){
		if(c[i]==0)  continue;
		else break;
	}
	if(i!=0){
		printf(".");
	for(j=1;j<=i;j++)
	   printf("%d",c[j]);
	}
	printf("\n");
}
return 0;
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/LOOKQAQ/article/details/80543413

智能推荐

拒绝平庸——浅谈WEB登录页面设计-程序员宅基地

文章浏览阅读3.3k次。  用户活跃度是检验产品成功与否的重要指标之一,传统行业的商家极为重视门面的装潢,因为一个好的门面可以聚集人气,招揽更多的顾客。古时候的大户人家院子门口的石狮子或其他的摆件的摆放极为讲究,有一定的风水学说道理,更能彰显主人家的身份地位.由此可见,“门面’就如人的脸面之于人的形象一样重要,而 WEB 的登录页面就相当传统的“门面”。   现在越来越多的大型网站把登录和首页放在一起设计,由此可见..._web用户登录界面设计的意义

Tomcat| 启动流程_tomcat启动流程源码-程序员宅基地

文章浏览阅读211次。Tomcat源码| 启动流程分析Bootstrap通过提供的脚本启动Tomcat时的主要方法和入口点。main 方法在org.apache.catalina.startup.Bootstrap类中.执行脚本<install_home>/bin/catalina.sh start我们可以看到程序的参数为"start"接下来看一下main函数的源码: public static void main(String args[]) { synchronized (da_tomcat启动流程源码

转载:wait_event_interruptible_wait_event_interruptible erestartsys-程序员宅基地

文章浏览阅读314次。1. 关于 wait_event_interruptible() 和 wake_up()的使用&nbsp;&nbsp;读一下wait_event_interruptible()的源码,不难发现这个函数先将 当前进程的状态设置成TASK_INTERRUPTIBLE,然后调用schedule(), 而schedule()会将位于TASK_INTERRUPTIBLE状态的当前进程从runqu..._wait_event_interruptible erestartsys

afx_msg解释_afx_msg void onchar();-程序员宅基地

文章浏览阅读890次。在afxwin.h中找到一些afx_msg的解释: #ifndef afx_msg #define afx_msg // intentional placeholder #endif 没什么意思.只是定义了这个符号而已. 这个对编译器来说,相当于什么都没有,对于人来说,我们可以看到这样的符号. _afx_msg void onchar();

error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'_emp.cpp(45) : error c2248: 'x' : cannot access pri-程序员宅基地

文章浏览阅读585次。1>e:/program files/microsoft visual studio 9.0/vc/atlmfc/include/afxtempl.h(776) : error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'1> e:/program f_emp.cpp(45) : error c2248: 'x' : cannot access private member declared in cl

服务器ssd硬盘的读写速度,SSD完胜HDD:读写速度和IOPS对比-程序员宅基地

文章浏览阅读6k次。04SSD完胜HDD:读写速度和IOPS对比在HDD机械硬盘时代,读写速度和寻道时间是最重要的两项指标,目前HDD的读写速度最快能达到225MB/秒、读写寻道能力在数秒时间。SSD将HDD的寻道时间直接无视,因为它是毫秒级别。对于SSD来说,它的读写速度和随机读写能力是至关重要的两项指标。下面进行①读写速度和②随机读写能力对比:注:小编自用主机,将此块SSD作为“C区系统盘”使用。这和以往小编将S..._读密集型ssd iops

随便推点

ISO 代码混淆,python实现ios代码混淆_ios pyhton 混淆-程序员宅基地

文章浏览阅读432次。主要的功能有,类名,属性,方法名,工程目录,图片hash值,图片名的混淆,删除注释,bundle名的更改,修改的日志记录,所有的命名都是有意义的单词组合,有专门的单词库,也可手动添加。问题:由于每个工程差异比较大,所以改脚本可能存在一些小问题,需要适当修改,一般都是和系统方法和系统属性冲突。哈哈,源码暂不提供,需要的可以留言看下目前需求多不,还有一些功能需要添加的,比如添加垃圾代码等,后续加上..._ios pyhton 混淆

QT时间日期定时器类 (4.QT定时器的使用方法)【QT基础入门 Demo篇】_qt 定时器-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。1.QT定时器使用方法一(QTime)定时器实现的例子:1.1 头文件中声明2.2源文件调用2.3定时器处理函数(根据输入的信号强度,更新信号强度图形界面)2.3停止计时器计时2.5效果2.QT定时器使用方法二(QT如何同时开启两个定时器呢)3、QT定时器使用方法三(QTimer)3.1基本用法3.2只执行超时函数一次3.3使用定时器实现线程一些工作4、定时器使用方法四(在线程中使用定时器)..._qt 定时器

MFC 复选框选中和是否被选中判断_mfc checkbox选中和不选中-程序员宅基地

文章浏览阅读1.7w次。方法1:((CButton*)GetDlgItem(IDC_CHECK_enable))->SetCheck(1);其中IDC_CHECK_enable为控件ID_mfc checkbox选中和不选中

Echarts饼图动态加载数据_echarts饼状图动态数据-程序员宅基地

文章浏览阅读1.5k次,点赞4次,收藏3次。Echarts饼图动态加载数据记录自己写的动态加载饼图1.动态加载函数2.数据来源记录自己写的动态加载饼图直接上代码1.动态加载函数// 初始化echarts实例let pieChart = echarts.init(document.getElementById('pieChart'));//把饼图的一些配置单独写成函数,用来动态加载数据let optionPieChart = (function (msg) { let pieChartData = { title:_echarts饼状图动态数据

js获取唯一设备码_用js加Active 实现读取机器码,实现唯一计算机访问-程序员宅基地

文章浏览阅读2.8k次。你的位置:问答吧-> PHP基础-> 问题详情用js加Active 实现读取机器码,实现唯一计算机访问复制PHP内容到剪贴板PHP代码:document.write(unescape(MACAddr));if(objObject.IPEnabled!=null&&objObject.I..._js获取机器码

img 标签的 usemap 属性-程序员宅基地

文章浏览阅读276次。<img src="1.gif" alt="Planets" usemap="#Map"/><map name="Map"> <area shape="rect" coords="11,10,180,180" href="detail/Best_marketing.html"> <area shape="rect" coords="198,13,3..._img usemap属性

推荐文章

热门文章

相关标签