hdu 1753 大明A+B(大数)
题意:小数大数加法
思路:大数模板
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std; void plu(char *a,char *b){//注意存储方式:整数倒着存,小数正着存,看代码需注意
int i,j,k,lena,lenb,lena1,lena2,lenb1,lenb2,lenc1,lenc2;//len分别对应相应数组的长度
char a1[],a2[],b1[],b2[],c1[],c2[];//a1、a2为第一个数的整数部分、小数部分
lena=strlen(a);//b1、b2为第二个数;c1、c2为结果
lenb=strlen(b);
//取出第1个数的整数部分、小数部分
for(i=;i<lena;++i)
if(a[i]=='.')
break;
lena1=i;
lena2=lena-i-;
for(j=i-,k=;j>=;--j)
a1[k++]=a[j];
for(j=i+,k=;j<lena;++j)
a2[k++]=a[j]; //取出第2个数的整数部分、小数部分
for(i=;i<lenb;++i)
if(b[i]=='.')
break;
lenb1=i;
lenb2=lenb-i-;
for(j=i-,k=;j>=;--j)
b1[k++]=b[j];
for(j=i+,k=;j<lenb;++j)
b2[k++]=b[j]; //开始计算
int up=;//进位
//计算小数部分
if(lena2>lenb2){
lenc2=lena2;
for(i=lena2-;i>=lenb2;--i)
c2[i]=a2[i];
for(;i>=;--i){
c2[i]=a2[i]+b2[i]-''+up;
if(c2[i]>''){
up=;
c2[i]-=;
}
else up=;
}
}
else{
lenc2=lenb2;
for(i=lenb2-;i>=lena2;--i)
c2[i]=b2[i];
for(;i>=;--i){
c2[i]=a2[i]+b2[i]-''+up;
if(c2[i]>''){
up=;
c2[i]-=;
}
else up=;
}
}
while(c2[lenc2-]==''&&lenc2>=)--lenc2;//去除后面多余的0
//计算整数部分
if(lena1>lenb1){
lenc1=lena1;
for(i=;i<lenb1;++i){
c1[i]=a1[i]+b1[i]-''+up;
if(c1[i]>''){
up=;
c1[i]-=;
}
else up=;
}
for(;i<lena1;++i){
c1[i]=a1[i]+up;
if(c1[i]>''){
up=;
c1[i]-=;
}
else up=;
}
}
else{
lenc1=lenb1;
for(i=;i<lena1;++i){
c1[i]=a1[i]+b1[i]-''+up;
if(c1[i]>''){
up=;
c1[i]-=;
}
else up=;
}
for(;i<lenb1;++i){
c1[i]=b1[i]+up;
if(c1[i]>''){
up=;
c1[i]-=;
}
else up=;
}
} if(up==)printf("");//最后有进位 for(i=lenc1-;i>=;--i)
printf("%c",c1[i]); if(lenc2>){
printf(".");
for(i=;i<lenc2;++i)
printf("%c",c2[i]);
}
printf("\n");
} int main(){
char a[],b[];
while(~scanf("%s%s",a,b))
plu(a,b);
return ;
}
hdu 1753 大明A+B(大数)的更多相关文章
- hdu 1753 大明A+B
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1753 容易出错的事例: 0.1 0.2 1.88 22.22 1 0.01 大概出错的几个点,做久了思维根 ...
- hdu 1753 大明A+B(高精度小数加法)
//深刻认识到自己的粗心,为此浪费了一天.. Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫"大明". 这时他已经不是 ...
- HDU 1753 大明A+B (大正小数加法、字符串处理)
大明A+B Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- HDU 1753 大明A+B(字符串模拟,简单题)
简单题,但要考虑一些细节: 前导0不要,后导0不要,小数长度不一样时,有进位时,逆置处理输出 然后处理起来就比较麻烦了. 题目链接 我的代码纯模拟,把小数点前后分开来处理,写的很繁杂,纯当纪念——可怜 ...
- HDU高精度总结(java大数类)
HDU1002 A + B Problem II [题意]大数相加 [链接]http://acm.hdu.edu.cn/showproblem.php?pid=1002 Sample Inpu ...
- [HDOJ] 1753.大明A+B (大数加法)
Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫"大明". 这时他已经不是那个只会做100以内加法的那个"小明 ...
- HDU 1041 Computer Transformation (简单大数)
Computer Transformation http://acm.hdu.edu.cn/showproblem.php?pid=1041 Problem Description A sequenc ...
- hdu 4873 ZCC Loves Intersection(大数+概率)
pid=4873" target="_blank" style="">题目链接:hdu 4873 ZCC Loves Intersection ...
- 【hdoj_1753】大明A+B(大数)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1753 本题要求是,进行多位的小数加法,由于位数很多,所以不能用double类型存储,可以用字符串存储,然后 ...
随机推荐
- Css Position定位(简易版本)
准备前的知识: 定位只对块级起作用.如div,p等元素是块级元素,如果是内联元素则可以先变成块级元素,display:block即可. 开始讲解: 定位共四种:static,fixed,relativ ...
- fastscript增加三方控件
fastscript增加三方控件 A.关于如何使用第三方控件,增加方法.属性.事件)举例如下: 如:有一控件为edtbutton:TedtButton,我们需要在动态脚本中使用该控件.我们采用如下方法 ...
- C#使用反射机制获取类信息[转]
http://www.cnblogs.com/zhoufoxcn/archive/2006/10/31/2515873.html 1.用反射动态创建类实例,并调用其公有成员函数. //新建一个类库项目 ...
- java线程中Exchanger使用
有时我们须要对元素进行配对和交换线程的同步点,使用exchange方法 返回其伙伴的对象,这时我们就须要使用线程类中的Exchanger类了, 我通过一个实例 来简单说明一下他的用法及其作用: imp ...
- [Algorithm] Breadth First JavaScript Search Algorithm for Graphs
Breadth first search is a graph search algorithm that starts at one node and visits neighboring node ...
- Android开发——进程间通信之AIDL(二)
0. 前言 不论是Android还是其它操作系统.都会有自己的IPC机制.所谓IPC(Inter-Process Communication)即进程间通信.首先线程和进程是非常不同的概念,线程是CP ...
- 微信自带浏览器被输入法阻挡文本框的 jQuery 解决方法 by FungLeo
微信自带浏览器被输入法阻挡文本框的 jQuery 解决方法 by FungLeo 前言 做好了项目之后,在各种浏览器里面測试,都没有问题.非常高兴,交付后端使用.然而发如今微信自带浏览器里面,却是出现 ...
- [RFC] Simplifying kernel configuration for distro issues
http://lwn.net/Articles/507276/ From: Linus Torvalds <torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b-A ...
- android中的常见对话框
在android中对话框是一种常见的操作,常见的对话框有下面几种: 以下是xml布局文件: <LinearLayout xmlns:android="http://schemas.an ...
- 文件另存为——Autocad.doc.SaveAs
一.前言 使用pyautocad编辑好cad图纸后,往往涉及到一个保存的问题,但是官方文档并未提及,所以只能自己来了,测试了好久,终于是找到了保存的命令和参数说明. 二.方法介绍 Autocad.do ...