题目:http://acm.hdu.edu.cn/showproblem.php?pid=1753

容易出错的事例:

0.1 0.2

1.88 22.22

1 0.01

大概出错的几个点,做久了思维根本出不来了。。。

3次A过。。。马马虎虎吧,代码太长了,优化回来再说吧

 #include<iostream>
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
using namespace std;
const int M=;
int c[M];
void xsone(int a[],int b[],int lenz)
{
for(int i=;i<lenz;i++)
a[i]=a[i]+b[i];
int temp=;
for(int i=;i<lenz+;i++)
{
a[i]+=temp;
temp=a[i]/;
a[i]%=;
}
int i;
for(i=lenz;i>=;i--)
if(a[i]!=)
break;
if(i<)
printf("");
for(;i>=;i--)
printf("%d",a[i]);
}
int xstwo(int a[],int b[],int lenz)
{
memset(c,,sizeof(c));
for(int i=;i<lenz;i++)
c[i]=a[i]+b[i];
int temp=,flag=;
for(int i=lenz-;i>=;i--)
{
c[i]+=temp;
if(i== && c[i]>=)
flag=;
temp=c[i]/;
c[i]%=;
}
return flag;
} int main()
{
//freopen("in.txt","r",stdin);
char sa[M],sb[M];
memset(sa,,sizeof(sa));
memset(sb,,sizeof(sb));
while(~scanf("%s %s",sa,sb))
{
int lena = strlen(sa);
for(int i=lena;i<M;i++)
sa[i]='';
int lenb = strlen(sb);
for(int i=lenb;i<M;i++)
sb[i]='';
int lenz = lena>lenb ? lena :lenb;
int flag=,sad=,sbd=;
for(int i=;i<lenz;i++)
{
if(sa[i]=='.')
{flag++;sad=i;}
if(sb[i]=='.')
{flag++;sbd=i;}
}
//printf("%d\n",flag);
if(flag==)
{
int a[M],b[M];
memset(a,,sizeof(a));
memset(b,,sizeof(b));
for(int i=;i<lena;i++)
a[lena--i]=sa[i]-'';
for(int i=;i<lenb;i++)
b[lenb--i]=sb[i]-'';
xsone(a,b,lenz);
printf("\n");
}
else if(flag==)
{
if(sad)
{
int a[M],b[M];
memset(a,,sizeof(a));
memset(b,,sizeof(b));
for(int i=;i<sad;i++)
a[sad--i]=sa[i]-'';
for(int i=;i<lenb;i++)
b[lenb--i]=sb[i]-'';
lenz = sad>lenb ? sad : lenb;
xsone(a,b,lenz);
for(int i=sad;i<lena;i++)
printf("%c",sa[i]);
printf("\n");
}
if(sbd)
{
int a[M],b[M];
memset(a,,sizeof(a));
memset(b,,sizeof(b));
for(int i=;i<lena;i++)
a[lena--i]=sa[i]-'';
for(int i=;i<sbd;i++)
b[sbd--i]=sb[i]-'';
lenz = lena>sbd ? lena : sbd;
xsone(a,b,lenz);
for(int i=sbd;i<lenb;i++)
printf("%c",sb[i]);
printf("\n");
}
}
else
{
int a[M],b[M];
memset(a,,sizeof(a));
memset(b,,sizeof(b));
//printf("%d\n",lenz);
int t=;
for(int i=sad+;i<lena;i++)
a[t++]=sa[i]-'';
t=;
for(int i=sbd+;i<lenb;i++)
b[t++]=sb[i]-'';
int salend=lena-sad-;
int sblend=lenb-sbd-;
lenz = salend>sblend ? salend : sblend;
//printf("%d",lenz);
int dright=;
dright = xstwo(a,b,lenz);
//printf("%d\n",dright);
// int i;
int lenz2 = lenz;
// for(i=0;i<lenz;i++)
// printf("%d",c[i]);
// printf("\n"); memset(a,,sizeof(a));
memset(b,,sizeof(b));
for(int i=;i<sad;i++)
a[sad--i]=sa[i]-''; if(dright == )//进位
a[]++;
for(int i=;i<sbd;i++)
b[sbd--i]=sb[i]-'';
lenz = sad>sbd ? sad :sbd;
xsone(a,b,lenz);
int i,h=,j;
for(i=lenz2;i>=;i--)
if(c[i]!=)
break;
h=i;
if(h>=)
{
printf(".");
for(j=;j<=h;j++)
printf("%d",c[j]);
}
printf("\n");
}
}
return ;
}

hdu 1753 大明A+B的更多相关文章

  1. hdu 1753 大明A+B(高精度小数加法)

    //深刻认识到自己的粗心,为此浪费了一天.. Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫"大明". 这时他已经不是 ...

  2. HDU 1753 大明A+B (大正小数加法、字符串处理)

    大明A+B Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  3. HDU 1753 大明A+B(字符串模拟,简单题)

    简单题,但要考虑一些细节: 前导0不要,后导0不要,小数长度不一样时,有进位时,逆置处理输出 然后处理起来就比较麻烦了. 题目链接 我的代码纯模拟,把小数点前后分开来处理,写的很繁杂,纯当纪念——可怜 ...

  4. hdu 1753 大明A+B(大数)

    题意:小数大数加法 思路:大数模板 #include<iostream> #include<stdio.h> #include<string.h> using na ...

  5. hdoj 1753 大明A+B 高精度/java

    大明A+B Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  6. HDOJ 1753 大明A+B

    JAVA大数.... 大明A+B Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  7. [HDOJ] 1753.大明A+B (大数加法)

    Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫"大明". 这时他已经不是那个只会做100以内加法的那个"小明 ...

  8. 【HDOJ】1753 大明A+B

    注意数据格式,可以是整数,并且注意输出最简化浮点数. #include <stdio.h> #include <string.h> #define MAXNUM 420 cha ...

  9. HDU高精度总结(java大数类)

      HDU1002   A + B Problem II [题意]大数相加 [链接]http://acm.hdu.edu.cn/showproblem.php?pid=1002 Sample Inpu ...

随机推荐

  1. System Generator入门笔记

    System Generator入门笔记  [CPLD/FPGA] 发布时间:2010-04-08 23:02:09  System Generator是Xilinx公司进行数字信号处理开发的一种设计 ...

  2. PHP性能分析

    内容来自以下站点整理http://jingyan.baidu.com/article/ff4116257e0d5112e48237a0.html关于PHP,很多人的直观感觉是PHP是一种灵活的脚本语言 ...

  3. php中session_start()相关问题分析与解决办法

    介绍下,在php中使用session时遇到的一些问题,与相关解决方法.1.错误提示Warning: Cannot send session cookie - headers already sentW ...

  4. NodeJs菜鸟初始

    我们先来了解下什么是nodejs 一.nodejs具有事件驱动.异步编程的特点. 事件驱动这个词并不陌生,在某些传统语言的网络编程中,我们会用到回调函数,比如当socket资源达到某种状态时,注册的回 ...

  5. phpcms v9 源码解析(4)content模块下的index.php文件的init()方法解析

    在了解index.php中的init函数的时候,让我们先看看最开始的几行代码 1-5  第二行, defined('IN_PHPCMS') or exit('Nopermission resource ...

  6. Translation002—Package Index(Android包索引)

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 看本翻译前请您注意: 本人初学android,可能有的翻译不是非常准确,但本人尽最大努力,不清楚处会做标记,并附 ...

  7. python初试牛刀

    需求:在L7的一台机器上做nginx配置,然后代码分发到别的所有的机器上.由于目录中有很多配置文件,而且防止误操作,需要修改配置之前先备份原配置.然后需要在运行修改配置的脚本之前,先弹出界面,告知操作 ...

  8. #include< > 和 #include” ” 的区别

    一.#include< > #include< > 引用的是编译器的类库路径里面的头文件. 假如你编译器定义的自带头文件引用在 C:\Keil\c51\INC\ 下面,则 #i ...

  9. Virtualbox中安装Openwrt

    Virtualbox:https://www.virtualbox.org/wiki/DownloadsOpenwrt:http://downloads.openwrt.org/backfire/10 ...

  10. Qt窗口部件及子部件

    QWidget类是所有用户界面对象的基类,被称为基础窗口部件. #include <QApplication> #include<QLabel> #include<QWi ...