hdu1753大明A+B
来源:互联网 发布:mac 上qq 上不了网 编辑:程序博客网 时间:2024/04/27 15:45
hdu1753
包含小数点的字符串加法
测试输入:
0.0000001 0.1
1.0 2
100.89 1.13
0.0000000 1.1
输出
0.1000001
1.2
102.02
1.1
#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<cmath>using namespace std;int main(){int i,j,k,m,n,alen,blen;char t,x[210],y[210],a[210],b[210],c[210],d[210];while(scanf("%s%s",x,y)!=EOF){memset(c,0,sizeof(c));memset(d,0,sizeof(d));for(i=0;i<strlen(x);i++){if(x[i]=='.'){t=x[i];x[i]='\0';strcpy(a+1,x);strcpy(c+1,x+i+1);x[i]=t;break;}strcpy(a+1,x);}for(i=0;i<strlen(y);i++){if(y[i]=='.'){t=y[i];y[i]='\0';strcpy(b+1,y);strcpy(d+1,y+i+1);y[i]=t;break;}strcpy(b+1,y);}//printf("%s!\n%s!\n%s!\n%s!\n\n",a+1,c+1,b+1,d+1);//接下来计算 整数部分(a+b) 和小数部分(c+d)////////////////////////////////////////////////c+dc[0]='X';d[0]='X';//使用strlen()计算至'\0'为止.alen=strlen(c)-1;blen=strlen(d)-1;//alen对应 c blen对应d m=min(alen,blen);n=max(alen,blen);for(i=1;i<=m;i++){y[i]=c[i]-'0'+d[i]-'0';}if(alen>blen)for(i=m+1;i<=n;i++)y[i]=c[i]-'0';elsefor(i=m+1;i<=n;i++)y[i]=d[i]-'0';for(y[0]=0,i=n;i>0;i--){if(y[i]>9){y[i]-=10;y[i-1]++;}}//if(y[0])printf("%d",y[0]);//for(i=1;i<=n;i++)printf("%d",y[i]);printf("\n");//system("pause");k=n;//因为n在下面还会继续使用 ,此处先备份 留作输出用 ///////////////////////////////////////////////////a+ba[0]='X';b[0]='X';//使用strlen()计算至'\0'为止。 alen=strlen(a)-1;blen=strlen(b)-1;m=min(alen,blen);n=max(alen,blen);x[0]='X';for(i=1;i<=n-m;i++)x[i]='0';x[i]='\0';if(alen>blen){strcat(x,b+1);for(i=1;i<=alen;i++)x[i]=a[i]-'0'+x[i]-'0';}else{strcat(x,a+1);for(i=1;i<=blen;i++)x[i]=b[i]-'0'+x[i]-'0';}x[n]+=y[0];//衔接小数部分的结果 for(x[0]=0,i=n;i>0;i--)if(x[i]>9){x[i]-=10;x[i-1]++;}if(x[0]!=0)printf("%d",x[0]);for(i=1;i<=n;i++)printf("%d",x[i]);for(i=k;i>0;i--){//printf("~%c~\n",y[i]);if(y[i]!=0)break;k=i-1;}if(i)printf(".");for(i=1;i<=k;i++)printf("%d",y[i]);printf("\n");}return 0;}
- 大明A+B hdu1753
- hdu1753----大明A+B
- hdu1753 大明A+B
- hdu1753大明A+B
- hdu1753 大明A+B
- hdu1753大明A+B
- hdu1753 大明A+B
- hdu1753 大明A+B
- HDU1753 大明A+B
- Hdu1753 大明A+B
- hdu1753大明A+B(高精度)
- hdu1753 大明A+B(高精度加法)
- 大明A+B(hdu1753)大数,java
- hdu1753 大明A+B && nyoj 513 A+B Problem IV
- ACM-简单题之大明A+B——hdu1753
- HDU1753—大明A+B(大正小数相加)
- HDU1753 大明A+B(带小数的大数加法)
- hdu1753 大明A+B (java大数练习第二弹 高精度小数)
- hdu 3328 Flipper <stack>
- 利息计算器
- ARM汇编的SWI指令软中断
- Proxool+Spring+Hibernate
- 从今以后我一个人唱悲伤情歌:伤感的QQ空间日志
- hdu1753大明A+B
- 二维数组与指针
- ios协议和委托
- tableModel 和 Adapter
- Android开发图书推荐
- stdarg.h
- 笔记:Cookie与Session的使用与区别
- 不知道还要心痛多久_伤感的情绪日志
- hdu 1022 Train Problem I <stack>