HDUOJ-------1753大明A+B(大数之小数加法)
大明A+B
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 7545 Accepted Submission(s): 2662
这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。
现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。
每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #define maxn 405 5 char sa[maxn],sb[maxn]; 6 struct node 7 { 8 int NN[405],point[405]; 9 int pos,nlen; 10 void init() 11 { 12 memset(NN,0,sizeof(NN)); 13 memset(point,0,sizeof(point)); 14 } 15 }; 16 node aa,bb; 17 void cal(char *str,node *p) //将大小数分解 18 { 19 int i,k,j=0,temp; 20 p->pos=strlen(str)-1; 21 for(i=0;str[i]!='.'&&i<=p->pos;i++) 22 p->NN[j++]=str[i]-'0'; 23 for(k=i-1,j=0;k>j;k--,j++){ 24 temp=p->NN[k]; 25 p->NN[k]=p->NN[j]; 26 p->NN[j]=temp; 27 } 28 if(i<=p->pos) p->nlen=i++; //NN长度点位置 29 else p->nlen=p->pos; 30 p->pos-=p->nlen ; //小数位数 31 for(j=0;i<strlen(str);i++) 32 p->point[j++]=str[i]-'0'; //不进行逆序 33 } 34 void work(node sa ,node sb){ 35 int i,j,cc,maxc,minc,p_len=0; 36 if(sa.pos>sb.pos){ 37 minc=sb.pos; 38 maxc=sa.pos; 39 } 40 else{ 41 minc=sa.pos; 42 maxc=sb.pos; 43 } 44 cc=0; 45 p_len=maxc-1; 46 for(i=maxc-1;i>=0;i--){ 47 sa.point[i]+=sb.point[i]+cc; 48 cc= sa.point[i]/10; 49 sa.point[i]%=10; 50 } 51 if(sa.nlen>sb.nlen){ 52 maxc=sa.nlen; 53 minc=sb.nlen; 54 } 55 else{ 56 maxc=sb.nlen; 57 minc=sa.nlen; 58 } 59 //判断小数点是否进 60 maxc++; 61 for(i=0,j=0;j<=maxc;j++){ 62 sa.NN[j]+=sb.NN[i++]+cc ; 63 cc=sa.NN[j]/10 ; 64 sa.NN[j]%=10 ; 65 } 66 while(maxc>0&&sa.NN[maxc]==0) maxc--; 67 while(maxc>=0) 68 printf("%d",sa.NN[maxc--]); 69 i=0; 70 while(sa.point[p_len]==0) p_len--; 71 if(i<=p_len) printf("."); 72 for(j=i;j<=p_len;j++) 73 printf("%d",sa.point[j]); 74 printf("\n"); 75 } 76 int main() 77 { 78 while(scanf("%s%s",sa,sb)!=EOF) 79 { 80 aa.init(); 81 bb.init(); 82 cal(sa,&aa); 83 cal(sb,&bb); 84 work(aa,bb); 85 } 86 return 0; 87 }
View Code
转载于:https://www.cnblogs.com/gongxijun/p/3690743.html
HDUOJ-------1753大明A+B(大数之小数加法)相关推荐
- java小数强制转换,Java中的强制类型转换 大数转小数
首先要明确一下转换规则:大数转小数,多出的高位部分会被截断.比如 int 占 4个byte(32 bit), byte占 1个byte(8bit), 那int 转 byte ,int 高位多出的那24 ...
- Kahan's Summation Formula原理—它是如何处理大数吃小数的
Kahan's Summation Formula原理-它是如何避免大数吃小数的 Kahan求和公式原理: 首先,这个算法就是用来求和的,求a1+a2+a3+...为什么不直接相加呢,而要用Kahan ...
- 例 9.14 声明一个类模板,利用它分别实现两个整数、浮点数和字符的比较,求出大数和小数。
C++程序设计(第三版) 谭浩强 例9.14 个人设计 例 9.14 声明一个类模板,利用它分别实现两个整数.浮点数和字符的比较,求出大数和小数. 代码块: 在类模板内部定义成员函数 #include ...
- 《tzoj5024》大数除以小数
<tzoj5024>大数除以小数>第一次写博客,拿来记录下oj上写的代码,方便以后能回忆.描述本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商 数Q ...
- stm32 整数加法循环时间_【教学设计】小数加法教学设计
小数加法教学设计 刘秀锦 舞钢市特殊教育学校 教材分析 本节课是第四单元"小数加减法"的第一课时,小数加减法是以整数加减法为基础进行教学的,本节课走踏实了,后边的知识才能顺利的进行 ...
- Hdu 1753 大明A+B 高精度小数相加
题意: 很长很长的小数相加.. 思路: 用1000长的数组处理两个小数..前500存整数..后500存小数..然后相应位相加.. 然后输出除去前导0和后面0的.. Tips: ※ strchr(cha ...
- HDU 1753 大明A+B
大明A+B Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- MS SQL Server2008大数、小数转varchar
HTJE在表中的字段类型为float(53) 试了下str, cast和convert,发现对于小数或大数,多少都存在一些问题,最后经过尝试终于找到一种满意的答案: select cast(HTJE ...
- JavaScript 进制之间的转换、大数或小数精度丢失、js不同进制的表示(分享)
文章目录 1. toString(radix) 2. parseInt(string, radix) 3. 0.1 + 0.2 !=== 0.3 4. BigInt() 5. js不同进制的表示 1. ...
- HDU1753—大明A+B(大正小数相加)
大明A+B Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
最新文章
- 2019北京智源大会全部议题完整公开
- 【干货】不同场景下 如何进行MySQL迁移
- SEAM学习(一)-----安装运行example
- JAVA循环与分支语句edu_Java分支结构和循环结构原理与用法详解
- Android 驱动(3)---Android驱动开发知识储备
- python类中self关键字用法
- Axure智慧、智能乡镇通数字管理服务平台+基础数据管理+招商后台管理+web端高保真管理后台
- 线性规划单纯型法(bzoj 3112: [Zjoi2013]防守战线)
- Chrome 谷歌浏览器安装Axure插件
- 有道惠惠购物助手和如意淘使用比较
- Google安装鼠标手势插件方法
- java bitset clean方法_BitSet实现原理及源码解析
- fid和is_【深度学习】生成式对抗网络(GAN)的常见评价指标:IS/FID/JS散度
- 云服务器功能检验方法
- 计算机网络复习(部分)
- 一位IT行业高收入者的理财规划方案
- 2021-02-07 - GraphQL - 学习/实践
- vue实现页面刷新以及局部刷新的方法
- 数据结构 -- 魔王语言解释
- ripro9.0修正升级版,无加密无后门,无需扩展,最新资源
热门文章
- poj 3422 (费用流)
- 5016.网络安全__防火墙应用案例和双机HA部署案例
- iOS 本地推送以及自定义推送声音
- 又丢脸了,“要源码上门自取”,结果美女真上门了!国内企业再惹争议
- 最新!2020中国高校毕业生薪资排行出炉!好过双一流的高校原来这么多
- 太傻了!下次二面再回答不好“秒杀系统“设计原理,我就捶死自己...
- Facebook提高工作效率的秘密 ,值得收藏
- 你不专业并且自以为是,所以被坑
- GitHub出现大量重复代码:JavaScript最严重
- hao123谢幕,那是80后青春的记忆