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

前导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. java非静态变量初始化

    java费静态变量的初始化分为两种情况,一种是局部变量,一种是类的域. 对于类的域,java在类初始化时,会为变量赋一个初始值.对于基本数据类型,java会将初始值设置为二进制0,具体为将boolea ...

  2. 《CDN web加速代理》RHEL6

    CDN加速代理环境的测试:192.168.1.这个网段是可以上网的,2网段不可以上网 一台apache服务器 :配置 只安装apche服务 IP 192.168.1.59 一台双网卡的服务器 :只安装 ...

  3. ◆linux分区的加密与自动解密◆——Super孟再创辉煌

    首先制作分区的加密挂载: 分区的自动解密:

  4. 村田噪声抑制基础教程-第一章 需要EMI静噪滤波器的原因

    1-1. 简介 EMI静噪滤波器 (EMIFIL®) 是为电子设备提供电磁噪声抑制的电子元件,配合屏蔽罩和其他保护装置一起使用.这种滤波器仅从通过连线传导的电流中提取并移除引起电磁噪声的元件.第1章说 ...

  5. [sql server] 如何阻止SELECT * 语句

    我们每个人都知道是个不好的做法,但有时我们还是要这样做:我们执行SELECT * 语句.这个方法有很多弊端: 你从你的表里返回每个列,甚至后期加的列.想下如果你的查询里将来加上了VARCHAR(MAX ...

  6. CSS简写及如何优化技巧

    CSS简写就是指将多行的CSS属性简写成一行,又称为CSS代码优化或CSS缩写.CSS简写的最大好处就是能够显著减少CSS文件的大小,优化网站整体性能,更加容易阅读. 下面介绍常见的CSS简写规则: ...

  7. .net(c#) winform文本框只能输入数字,不能其他非法字符

    private void textBox3_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { //阻止从键盘输入键 ...

  8. 读取iis日志到sql server

    using Fasterflect; using System; using System.Collections.Generic; using System.Data.SqlClient; usin ...

  9. SQL拼接备份数据库

    在SQLserver使用脚本备份数据库的时候需要注意的问题是: 1.指向的文件名必须是有读写权限. 2.在使用批量数据库备份时候需要根据自己需求选择性备份. -- ================== ...

  10. windows2003通过iis配置ftp服务器

    以前习惯于用filezilla作为windows的ftp服务器,但是现在新版本的filezilla已经不支持windows2003了,所以趁机试一下iis配置ftp服务器. 前面都是很常规的配置 参考 ...