简单题,但要考虑一些细节:

前导0不要,后导0不要,小数长度不一样时,有进位时,逆置处理输出

然后处理起来就比较麻烦了。

题目链接

我的代码纯模拟,把小数点前后分开来处理,写的很繁杂,纯当纪念——可怜我的眼睛。

#include<string.h>
#include<stdio.h>
int i,la,lb,la1,lb1,la2,lb2,lc1,lc2,yi,temp;
char a[],b[],a1[],a2[],b1[],b2[],c1[],c2[];
void nizhi1(){
int le=la1/;
char c;
for(int i=;i<le;i++){
c=a1[i];a1[i]=a1[la1--i];a1[la1--i]=c;
}
}
void nizhi2(){
int le=la2/;
char c;
for(int i=;i<le;i++){
c=a2[i];
a2[i]=a2[la2--i];
a2[la2--i]=c;
}
}
void nizhi3(){
int le=lb1/;
char c;
for(int i=;i<le;i++){
c=b1[i];
b1[i]=b1[lb1--i];
b1[lb1--i]=c;
}
}
void nizhi4(){
int le=lb2/;
char c;
for(int i=;i<le;i++){
c=b2[i];
b2[i]=b2[lb2--i];
b2[lb2--i]=c;
}
}
void nizhi5(){
int le=lc1/;
char c;
for(int i=;i<le;i++){
c=c1[i];
c1[i]=c1[lc1--i];
c1[lc1--i]=c;
}
}
void nizhi6(){
int le=lc2/;
char c;
for(int i=;i<le;i++){
c=c2[i];
c2[i]=c2[lc2--i];
c2[lc2--i]=c;
}
}
int main()
{ while(scanf("%s%s",a,b)!=EOF)
{
memset(a1,,sizeof(a1));
memset(a2,,sizeof(a2));
memset(b1,,sizeof(b1));
memset(b2,,sizeof(b2));
memset(c1,,sizeof(c1));
memset(c2,,sizeof(c2));
i=la=lb=la1=lb1=la2=lb2=lc1=lc2=yi=temp=;
la=strlen(a);
lb=strlen(b);
la1=la2=lb1=lb2=;
for(i=;i<la;i++)
{
if(a[i]=='.'||a[i]=='\0')
break;
a1[la1++]=a[i];
}
a1[la1]='\0';
nizhi1(); for(i=i+;i<la;i++)
{
a2[la2++]=a[i];
}
a2[la2]='\0';
nizhi2();
for(i=;i<lb;i++)
{
if(b[i]=='.'||b[i]=='\0')
break;
b1[lb1++]=b[i];
}
b1[lb1]='\0';
nizhi3();
for(i=i+;i<lb;i++)
{
b2[lb2++]=b[i];
}
b2[lb2]='\0';
nizhi4(); lc1=;
temp=;
yi=;
if(la2>lb2)
{
int cha=la2-lb2;
for(i=;i<cha;i++)
{
if(yi==&&a2[i]==''){}
else
{
yi=;
c1[lc1++]=a2[i];
}
}
for(i=;i<lb2;i++)
{
temp=temp+a2[i+cha]+b2[i]-''-'';
if(temp%==&&yi==){}
else
{
yi=;
c1[lc1++]=temp%+'';
}
temp=temp/;
}
}
else
{
int cha=lb2-la2;
for(i=;i<cha;i++)
{
if(yi==&&b2[i]==''){}
else
{
yi=;
c1[lc1++]=b2[i];
}
}
for(i=;i<la2;i++)
{
temp=temp+b2[i+cha]+a2[i]-''-'';
if(temp%==&&yi==){}
else
{
yi=;
c1[lc1++]=temp%+'';
}
temp=temp/;
}
}
c1[lc1]='\0'; if(la1>lb1)
{
for(i=;i<lb1;i++)
{
temp=temp+a1[i]+b1[i]-''-'';
c2[lc2++]=temp%+'';
temp=temp/;
}
for(;i<la1;i++)
{
temp=temp+a1[i]-'';
c2[lc2++]=temp%+'';
temp=temp/;
}
}
else
{
for(i=;i<la1;i++)
{
temp=temp+a1[i]+b1[i]-''-'';
c2[lc2++]=temp%+'';
temp=temp/;
}
for(;i<lb1;i++)
{
temp=temp+b1[i]-'';
c2[lc2++]=temp%+'';
temp=temp/;
}
}
if(temp!=)
c2[lc2++]=temp+'';
c2[lc2]='\0';
nizhi5();
nizhi6();
yi=;
for(i=;i<lc2;i++)
{
if(c2[i]==''&&yi==)
continue;
else
{
yi=;
printf("%c",c2[i]);
}
}
if(lc1!=)
{
printf(".%s",c1);
}
printf("\n");
}
return ;
}

HDU 1753 大明A+B(字符串模拟,简单题)的更多相关文章

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

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

  2. hdu 1753 大明A+B

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1753 容易出错的事例: 0.1 0.2 1.88 22.22 1 0.01 大概出错的几个点,做久了思维根 ...

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

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

  4. hdu 5083 有坑+字符串模拟水题

    http://acm.hdu.edu.cn/showproblem.php?pid=5083 机器码和操作互相转化 注意SET还要判断末5位不为0输出Error #pragma comment(lin ...

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

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

  6. [BestCoder Round #3] hdu 4907 Task schedule (模拟简单题)

    Task schedule Problem Description 有一台机器,而且给你这台机器的工作表.工作表上有n个任务,机器在ti时间运行第i个任务,1秒就可以完毕1个任务. 有m个询问,每一个 ...

  7. HDU 5776 sum( 鸽巢定理简单题 )

    链接:传送门 题意:给一个长为 n 的串,问是否有子串的和是 m 的倍数. 思路:典型鸽巢定理的应用,但是这里 n,m 的大小关系是不确定的,如果 n >= m 根据定理可以很简单的判定是一定有 ...

  8. HDU 1028Ignatius and the Princess III(母函数简单题)

     Ignatius and the Princess III Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d ...

  9. hdu 2629 Identity Card (字符串解析模拟题)

    这题是一个字符串模拟水题,给12级学弟学妹们找找自信的,嘿嘿; 题目意思就是要你讲身份证的上的省份和生日解析出来输出就可以了: http://acm.hdu.edu.cn/showproblem.ph ...

随机推荐

  1. android ListView_显示数据库数据

    xml <?xml version="1.0"?> -<LinearLayout tools:context=".MainActivity" ...

  2. 【风马一族_Android】Android 前端内容

    Android 前端内容 4.1 View 类概述 4.1.1 关于 View //类型说明 view(视图)指的是用户界面组件的基本构建基块.一个视图占据屏幕上的矩形区域,负责绘图和事件处理.视图是 ...

  3. ADO.NET笔记——存储二进制大对象(BLOB)

    相关知识 上传二进制大对象(Binary Large Object)(如图片.视频等)的基本编程步骤是: 在数据库中使用varbinary(MAX).varchar(MAX)或者nvarchar(MA ...

  4. centos安装环境准备工作

    我们的centos系统安装好了,并且网络已经连通了,接下来介绍一下,在外网连通的情况下,我们如何安装tar.gz等形式的软件. centos安装后如果想作为正常应用development tools和 ...

  5. 用泛型的IEqualityComparer<T>接口去重复项

    提供者:porschev 题目:下列数据放在一个List中,当ID和Name都相同时,去掉重复数据 ID Name 1  张三 1  李三 1  小伟 1  李三  2  李四 2  李武 ----- ...

  6. [大牛翻译系列]Hadoop(8)MapReduce 性能调优:性能测量(Measuring)

    6.1 测量MapReduce和环境的性能指标 性能调优的基础系统的性能指标和实验数据.依据这些指标和数据,才能找到系统的性能瓶颈.性能指标和实验数据要通过一系列的工具和过程才能得到. 这部分里,将介 ...

  7. PHP获取时间日期的多种方法

    分享下PHP获取时间日期的多种方法. <?php echo "今天:".date("Y-m-d")."<br>";     ...

  8. JS判断鼠标从什么方向进入一个容器

    偶然将想到的一个如何判断鼠标从哪个方向进入一个容器的问题.首先想到的是给容器的四个边添加几个块,然后看鼠标进入的时候哪个块先监听到鼠标事件.不过这样麻烦太多了.google了一下找到了一个不错的解决方 ...

  9. MySQL 简洁连接数据库方式

    OS  :   CentOS 6.3 DB  :  5.5.14 MySQL连接数据库的方式很多: 1.[root@db01 bin]# ./mysql -uroot -p 2.[root@db01 ...

  10. Android修改system只读权限

    在Root后的真机上使用adb remount命令不知道为什么不行. 但有些时候还是想向system文件夹下面写文件,例如把tcpdump工具放到/system/bin 下面,然后就可以直接使用tcp ...