HDU 1753 大明A+B
来源:互联网 发布:tomcat修改端口 编辑:程序博客网 时间:2024/06/10 14:50
#include <stdio.h>#include <string.h>#define Expand(a,b) for(i=0; i<b;i++) strcat(a->num,"0"); a->dec+=b;//这里要注意char s1[1000],s2[1000],ans[1000];typedef struct{ char num[1000]; int dec;}Real; //考验结构 Real相当于struct {} 记住声明变量要带structReal r1,r2,r3;int max(int a,int b) {return a>b?a:b;}void load(char s[],Real *real){ int i,j=0,c; for (i=0,c=-1;s[i];i++) if (s[i]=='.') c++; else { real->num[j++]=s[i]; if(c!=-1) c++; } real->num[j]='\0'; real->dec=max(c,0); if(real->num[0]=='\0') strcpy(real->num,"0");}void add(char a[],char b[],char c[]){ int len1=strlen(a), len2=strlen(b), len=max(len1,len2);int i,j,k,aa,bb,cc=0;//这个cc=0 错误找了好久啊 c[len+1]='\0';for ( i=len1-1,j=len2-1,k=len; i>=0||j>=0 ;i--,j--,k--)//不能int=len1-1 等等{ aa=(i<0? 0:a[i]-'0');//常考这个字符串与数字的转换bb=(j<0? 0:b[j]-'0');c[k]=(aa+bb+cc)%10+'0';//同上cc=(aa+bb+cc)/10;}if(cc !=0) c[0]=cc+'0';else strcpy(c,c+1);}void Realadd(Real *a,Real *b,Real *c){int i; if(a->dec < b->dec) { Expand(a,b->dec-a->dec);} if(a->dec > b->dec) { Expand(b,a->dec-b->dec);}//这里要加大括号 因为是一个for循环加一个语句,否则可能不执行c->dec=a->dec;add(a->num,b->num,c->num);}void Set(Real *a,char s[]){ int len1=a->dec,len=strlen(a->num),i,j; for (i=0,j=-1;i<len-len1;i++) {if(a->num[i] !='0'&&j==-1) j=0;// 00001.1 这种情况要注意if(j!=-1) s[j++]=a->num[i]; }if(j==-1) j=0,s[j++]='0';s[j++]='.';for(i=len-a->dec;i<len;i++) s[j++]=a->num[i];s[j]='\0';while(s[--j]=='0') s[j]='\0';if(s[j]=='.') s[j]='\0';}int main(){ while (~scanf("%s %s",s1,s2)) {load(s1,&r1); load(s2,&r2);Realadd(&r1,&r2,&r3);Set(&r3,ans);puts(ans); }return 0;}
0 0
- HDU 1753 大明A+B
- hdu 1753 大明A+B
- hdu 1753 大明A+B
- HDU 1753 大明A+B
- hdu 1753 大明A+B
- hdu 1753 大明A+B
- HDU 1753 大明A+B
- hdu 1753 大明A+B
- hdu 1753 大明A+B
- hdu-1753-大明A+B
- hdu 1753 大明A+B
- HDU 1753 大明A+B
- HDU 1753 大明A+B
- HDU 1753 大明A+B
- HDU 1753 大明A+B
- hdu 1753 大明A+B
- HDU 1753 大明A+B
- hdu 1753 大明A+B
- java中软引用、弱引用、虚引用
- 事务性质以及隔离级别
- java.lang.ClassCastException: android.widget.Button异常
- http协议和web应用有状态和无状态
- 堆排序算法
- HDU 1753 大明A+B
- Matlab的imfilter函数用法
- 关于TCP三次握手和四次握手的趣味理解
- sudo
- hdu 1049 Climbing Worm 以为贪心题,刷之,发现真水。
- hdu2838Cow Sorting树状数组求逆序对
- vector::push_back() demo
- FAT格式磁盘镜像制作方法
- 上传图片,用Jcrop剪裁图像并用PHP获取剪裁后的图像