LETTers比赛第三场 --1003 大明A+B解题报告
报告人:侯建鹏
报告日期: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解题报告相关推荐
- Letters比赛第六场1004 Unit Fraction Partition解题报告
1004 Unit Fraction Partition(POJ 1980) 解题思路:DFS + 剪枝.这题的剪枝条件还是比较严格的,很容易超时,我想到的需要剪枝的情况有以下几点:①前几项的和超过了 ...
- LETTers比赛第三场 --1002 Ignatius and the Princess III解题报告
提交人:侯建鹏 提交日期:2012/4/16 1002 Ignatius and the Princess III 解题思路(一):动态规划 先设置int p[N][N]; Dp 方程为:p[i][j ...
- LETTers比赛第七场 Guess the Numbers
这是其它国家区预赛的题目,大家可以看出来区域现场赛最简单题的难度. 解题的思路很容易想到,四则运算处理可能比较麻烦~但是经过细心调试应该问题不大:还有就是排列的生成可以自己写,但是这里提倡用next_ ...
- Letters比赛第六场1002 Babelfish解题报告
1002 Babelfish (POJ 2503) 解题思路:字符串的哈希,找一个比较好的hash函数就可以了,冲突时用链表的形式组织.用STL中的map等容器也可以过,不过性能差点. 代码如下: # ...
- BestCoder22 1003.NPY and shot 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5144 题目意思:有个人抛物体,已知抛的速度和高度,问可以抛到的最远距离是多少.即水平距离. 做的时候是 ...
- 球迷福利!Next VR本周将直播三场ICC比赛
最近,Next VR透露了与Relevent Sports的VR直播合作计划. NextVR,全球唯一能够提供深度信息和沉浸感的360度视频内容的公司,拥有价值18万美元的红龙摄像机系统,全球独一无二 ...
- 2021年度训练联盟热身训练赛第三场(待补)
文章目录 前言 一.Circuit Math(后缀表达式---栈&&fgets) 二.Diagonal Cut(gcd最大公因数,数论) 三.expected primary-expr ...
- 商业实战第三场 电视直销好记星
视频地址:[url]http://win.cn.yahoo.com/070829/16/nmcn.html[/url] 7月2日,<赢在中国>商业实战将展开第三场的较量,商业任务为通过橡果 ...
- Codeforces Round #596 (Div. 2)(第三场)
Preface 我要开始打Codeforces了,这是我的第三场比赛,本来以为可以快速上分的,谁知在pupil的路上越走越远. 本场战绩: Cost Time: 2 hours Solved: 1.5 ...
最新文章
- php sql count函数,SQL COUNT() 函数
- Hi3516A开发--i2c tools安装和使用
- 图集cancelButtonIndex,发送通知简洁写法
- (原创总结) Quartus II 的在线调试方法
- oracle日志文件大小规则,在线重做Oracle日志文件大小
- 移动开发js库Zepto.js使用中的一些注意点
- python ctypes 回调函数_如何用Python中的ctypes创建回调函数?
- 最困难的是带着自己的选择生活下去
- redux-form(V7.4.2)笔记(三)之Flow简介
- Arcgis Javascript那些事儿(六)--arcgis js API本地环境配置
- pp助手苹果版_微商相册助手ios版下载-微商相册助手苹果版下载v1.0.8
- 微信小程序-使用ColorUI
- KL散度、交叉熵与JS散度数学公式以及代码例子
- Ubuntu16.04 php5安装失败解决方案
- 移动硬盘文件,图标变白解决方案
- Docker官方文档学习笔记(二):Docker Desktop入门
- c语言编写用户注册程序,如何用c实现登录和注册的程序?
- Keepalived之——*** WARNING - this build will not support IPVS with IPv6.解决方案
- EDVR和FastDVD
- android 启动页主题_如何使用主题和启动器个性化您的Android手机
热门文章
- 【2021年度训练联盟热身训练赛第二场】Soccer Standings(python)
- 【深度学习入门到精通系列】R2 Unet解释
- python【数据结构与算法】一种时间复杂度和空间复杂度的计算方法
- java方法6_6.1 JAVA方法入门
- 网络营销——网络营销专员到底是教你如何选择网站页面制作
- 网站百度索引量受哪些因素影响呢?
- python画数组曲线_python – 在matplotlib中如何填充由两组不同数组定义的两条曲线?...
- 开发日记-20190902 关键词 读书笔记《Unix环境高级编程(第二版)》DAY 7
- 罗辑思维 - 当代的学习方法
- android从放弃到精通第10天 勿忘初心