报告人:侯建鹏

报告日期:2012/4/16

1003 大明A+B

解题思路:模拟

我的方法很简单,就是不停的模拟、模拟、再模拟。

首先,把每个数都分成两部分,整数部分和小数部分,即a_h_count、a_l_count、b_h_count、b_l_count。相信只要细心一些都可以做出来的。

然后,把模拟人工计算过程,先加小数位,加完之后,产生的对整数位的进位再和两个数的整数部分相加,最后把零去掉,输出就可以了。

关键是:一定要细心!!!

详见代码。

#include<stdio.h>
#include<string.h>
#define N 400+10char a[N],b[N];
int a_h[N],a_l[N],b_h[N],b_l[N],h[N],l[N],h_count,l_count;int Judge(char *a)
{int i=0;while(a[i]!='.'&&a[i]!=0)i++;return i;
}int Change1(char *a,int *a_h,int a_point)
{int i,j=0;for(i=a_point-1;i>=0;i--){a_h[j]=a[i]-'0';j++;}return j;
}
int Change2(char *a,int *a_l,int a_point )
{int i,j=0;if(a[a_point]==0)return 0;for(i=a_point+1;a[i]!=0;i++){a_l[j]=a[i]-'0';j++;}return j;
}int max(int a,int b)
{return a>b?a:b;
}int main()
{int i;int a_point,b_point,a_h_count,b_h_count, a_l_count,b_l_count;while(scanf("%s%s",a,b)==2){memset(a_h,0,sizeof(a_h));memset(b_h,0,sizeof(b_h));memset(a_l,0,sizeof(a_l));memset(b_l,0,sizeof(b_l));memset(h,0,sizeof(h));memset(l,0,sizeof(l));a_point=Judge(a);b_point=Judge(b);a_h_count=Change1(a,a_h,a_point);b_h_count=Change1(b,b_h,b_point);a_l_count=Change2(a,a_l,a_point);b_l_count=Change2(b,b_l,b_point);h_count=max(a_h_count,b_h_count);l_count=max(a_l_count,b_l_count);//printf("%d\n",a_l_count);//printf("%d\n",b_l_count);//printf("%d\n",l_count);for(i=l_count-1;i>=0;i--){if(i==0){l[i]+=a_l[i]+b_l[i];h[0]+=l[i]/10;l[i]=l[i]%10;}else{l[i]+=a_l[i]+b_l[i];l[i-1]+=l[i]/10;l[i]=l[i]%10;}}for(i=0;i<h_count;i++){h[i]+=a_h[i]+b_h[i];h[i+1]+=h[i]/10;h[i]=h[i]%10;}if(h[h_count]!=0)h_count++;i=l_count-1;while(l[i]==0&&i>=0){l_count--;i--;}i=h_count-1;while(h[i]==0&&i>=1){h_count--;i--;}for(i=h_count-1;i>=0;i--)printf("%d",h[i]);if(l_count>0){printf(".");for(i=0;i<l_count;i++)printf("%d",l[i]);}printf("\n");//printf("l_count=%d\n",l_count);
    }return 0;
}

转载于:https://www.cnblogs.com/LETTers/archive/2012/04/16/2452704.html

LETTers比赛第三场 --1003 大明A+B解题报告相关推荐

  1. Letters比赛第六场1004 Unit Fraction Partition解题报告

    1004 Unit Fraction Partition(POJ 1980) 解题思路:DFS + 剪枝.这题的剪枝条件还是比较严格的,很容易超时,我想到的需要剪枝的情况有以下几点:①前几项的和超过了 ...

  2. LETTers比赛第三场 --1002 Ignatius and the Princess III解题报告

    提交人:侯建鹏 提交日期:2012/4/16 1002 Ignatius and the Princess III 解题思路(一):动态规划 先设置int p[N][N]; Dp 方程为:p[i][j ...

  3. LETTers比赛第七场 Guess the Numbers

    这是其它国家区预赛的题目,大家可以看出来区域现场赛最简单题的难度. 解题的思路很容易想到,四则运算处理可能比较麻烦~但是经过细心调试应该问题不大:还有就是排列的生成可以自己写,但是这里提倡用next_ ...

  4. Letters比赛第六场1002 Babelfish解题报告

    1002 Babelfish (POJ 2503) 解题思路:字符串的哈希,找一个比较好的hash函数就可以了,冲突时用链表的形式组织.用STL中的map等容器也可以过,不过性能差点. 代码如下: # ...

  5. BestCoder22 1003.NPY and shot 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5144 题目意思:有个人抛物体,已知抛的速度和高度,问可以抛到的最远距离是多少.即水平距离. 做的时候是 ...

  6. 球迷福利!Next VR本周将直播三场ICC比赛

    最近,Next VR透露了与Relevent Sports的VR直播合作计划. NextVR,全球唯一能够提供深度信息和沉浸感的360度视频内容的公司,拥有价值18万美元的红龙摄像机系统,全球独一无二 ...

  7. 2021年度训练联盟热身训练赛第三场(待补)

    文章目录 前言 一.Circuit Math(后缀表达式---栈&&fgets) 二.Diagonal Cut(gcd最大公因数,数论) 三.expected primary-expr ...

  8. 商业实战第三场 电视直销好记星

    视频地址:[url]http://win.cn.yahoo.com/070829/16/nmcn.html[/url] 7月2日,<赢在中国>商业实战将展开第三场的较量,商业任务为通过橡果 ...

  9. Codeforces Round #596 (Div. 2)(第三场)

    Preface 我要开始打Codeforces了,这是我的第三场比赛,本来以为可以快速上分的,谁知在pupil的路上越走越远. 本场战绩: Cost Time: 2 hours Solved: 1.5 ...

最新文章

  1. php sql count函数,SQL COUNT() 函数
  2. Hi3516A开发--i2c tools安装和使用
  3. 图集cancelButtonIndex,发送通知简洁写法
  4. (原创总结) Quartus II 的在线调试方法
  5. oracle日志文件大小规则,在线重做Oracle日志文件大小
  6. 移动开发js库Zepto.js使用中的一些注意点
  7. python ctypes 回调函数_如何用Python中的ctypes创建回调函数?
  8. 最困难的是带着自己的选择生活下去
  9. redux-form(V7.4.2)笔记(三)之Flow简介
  10. Arcgis Javascript那些事儿(六)--arcgis js API本地环境配置
  11. pp助手苹果版_微商相册助手ios版下载-微商相册助手苹果版下载v1.0.8
  12. 微信小程序-使用ColorUI
  13. KL散度、交叉熵与JS散度数学公式以及代码例子
  14. Ubuntu16.04 php5安装失败解决方案
  15. 移动硬盘文件,图标变白解决方案
  16. Docker官方文档学习笔记(二):Docker Desktop入门
  17. c语言编写用户注册程序,如何用c实现登录和注册的程序?
  18. Keepalived之——*** WARNING - this build will not support IPVS with IPv6.解决方案
  19. EDVR和FastDVD
  20. android 启动页主题_如何使用主题和启动器个性化您的Android手机

热门文章

  1. 【2021年度训练联盟热身训练赛第二场】Soccer Standings(python)
  2. 【深度学习入门到精通系列】R2 Unet解释
  3. python【数据结构与算法】一种时间复杂度和空间复杂度的计算方法
  4. java方法6_6.1 JAVA方法入门
  5. 网络营销——网络营销专员到底是教你如何选择网站页面制作
  6. 网站百度索引量受哪些因素影响呢?
  7. python画数组曲线_python – 在matplotlib中如何填充由两组不同数组定义的两条曲线?...
  8. 开发日记-20190902 关键词 读书笔记《Unix环境高级编程(第二版)》DAY 7
  9. 罗辑思维 - 当代的学习方法
  10. android从放弃到精通第10天 勿忘初心