hoj 1753 大明A+B
来源:互联网 发布:怎么查看淘宝消费总额 编辑:程序博客网 时间:2024/05/06 13:17
大明A+B
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4823 Accepted Submission(s): 1592
这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。
现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。
每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。
1.1 2.91.1111111111 2.34443233431 1.1
43.45554344542.1
#include<stdio.h>
#include<string.h>
int main()
{
int a[1000],b[1000],c[1000],i,j,k1,k2,d[1000],e[1000],f[1000],i1,i2,j1,flag1,flag2,i11,i12,t,flag,flag3,num;
char st1[1000],st2[1000];
while(scanf("%s%s",st1,st2)!=EOF)
{
i1=0;i2=0;
memset(d,0,sizeof(d));
memset(e,0,sizeof(e));
memset(f,0,sizeof(f));
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
k1=strlen(st1);
k2=strlen(st2);
for(i=0;i<=k1-1&&st1[i]!='.';i++)
a[i]=st1[i]-'0';
i11=i;
i++;
flag1=1;
for(i1=0;i<=k1-1;i++,i1++)
{
d[i1]=st1[i]-'0';
flag1=0;
}
for(i=0;i<(i11)/2;i++)
{
t=a[i];
a[i]=a[i11-i-1];
a[i11-i-1]=t;
}
for(i=0;i<=k2-1&&st2[i]!='.';i++)
b[i]=st2[i]-'0';
i12=i;
i++;
flag2=1;
for(i2=0;i<=k2-1;i++,i2++)
{
e[i2]=st2[i]-'0';flag2=0;
}
for(i=0;i<(i12)/2;i++)
{
t=b[i];
b[i]=b[i12-i-1];
b[i12-i-1]=t;
}
for(i=0;i<=i1-1||i<=i2-1;i++)
f[i]=d[i]+e[i];
j=i;
num=j;
for(j=i;j>=1;j--)
if(f[j]>9)
{
f[j-1]+=1;
f[j]=f[j]-10;
}
i=j;
flag=0;
if(num!=0)
{
if(f[0]>9)
{f[0]=f[0]-10;flag=1;}
}
while(f[num-1]==0&&num>0)
{
num--;
}
if(flag==1) a[0]+=1;
if(flag1==0)
k1=k1-i1-1;
if(flag2==0)
k2=k2-i2-1;
for(i=0;i<=k1-1&&i<=k2-1;i++)
c[i]=a[i]+b[i];
j=i;
if(k1>k2)
for(j=i;j<=k1-1;j++)
c[j]=a[j];
else
for(j=i;j<=k2-1;j++)
c[j]=b[j];
for(i=0;i<=j-2;i++)
if(c[i]>9)
{ c[i]=c[i]-10; c[i+1]+=1;}
i=j-1;
while(c[i]==0&&i>0)
{
j--;
i--;
}
for(i=j-1;i>=0;i--)
printf("%d",c[i]);
flag3=0;
if(num==1&&f[0]==0)
flag3=1;
if(num==0)
{
flag3=1;
}
if((i1>0||i2>0)&&flag3==0)
{
printf(".");
for(i=0;i<num;i++)
printf("%d",f[i]);
}
printf("\n");
}
return 0;
}
- hoj 1753 大明A+B
- HDOJ 1753 大明A+B
- HDU 1753 大明A+B
- HDOJ 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
- HDOJ 1753 大明A+B
- hdu 1753 大明A+B
- HDUJ 1753 大明A+B
- hdu 1753 大明A+B
- HDOJ 1753 大明A+B
- hdu-1753-大明A+B
- hdu 1753 大明A+B
- HDU 1753 大明A+B
- COPY,CLONE
- 解决@selector无法传参的办法,通过tag标记传递更多数据
- 分享七个非常有用的Android开发工具和工具包
- 通过java的io流将本地文件读取到控制台,并将文件内容再次写入另一个文件中
- 略晓网:经验真的能换钱
- hoj 1753 大明A+B
- js 显示动态时间
- code4fun:host wcf service just in time
- 导出Word时提示 Word无法启动转换器 mswrd632.wpc
- Spring工厂注入例子
- 10大优秀的移动Web应用程序开发框架推荐
- ThinkPHP 详解
- c/c++中排序的使用之—qsort
- UVA 10085 - The most distant state