超长小数相加
来源:互联网 发布:java航班信息管理系统 编辑:程序博客网 时间:2024/04/29 04:54
#include<stdio.h>
#include<string.h>
#define N 440
void print(int t[])
{
int i,j,k,high,low;
for(low=0;low<2*N;low++)
if(t[low])
break;
for(high=2*N-1;high>=0;high--)
if(t[high])
break;
if(N>high)
{
printf("0.");
for(k=N-1;k>=low;k--)
printf("%d",t[k]);
printf("\n");
}
else if(N<=low)
{
for(k=high;k>=N;k--)
printf("%d",t[k]);
printf("\n");
}
else
{
for(k=high;k>=low;k--)
{
if(k==N-1)
printf(".");
printf("%d",t[k]);
}
printf("\n");
}
}
int main()
{
int i,j,k,len,low,high,a[2*N],b[2*N];
char c[N],d[N];
while(scanf("%s%s",c,d)!=EOF)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
len=strlen(c);
for(i=0;i<len;i++)
if(c[i]=='.')
break;
k=0;
for(j=i-1;j>=0;j--)
{
a[N+k]=c[j]-'0';
k++;
}
k=1;
for(j=i+1;j<len;j++)
{
a[N-k]=c[j]-'0';
k++;
}
len=strlen(d);
for(i=0;i<len;i++)
if(d[i]=='.')
break;
k=0;
for(j=i-1;j>=0;j--)
{
b[N+k]=d[j]-'0';
k++;
}
k=1;
for(j=i+1;j<len;j++)
{
b[N-k]=d[j]-'0';
k++;
}
for(j=0;j<2*N;j++)
{
a[j]+=b[j];
if(a[j]>9)
{
a[j]-=10;
a[j+1]++;
}
}
j=0;
for(i=0;i<2*N;i++)
j+=a[i];
if(j==0)
{
printf("0\n");
continue;
}
print(a);
}
}
- 超长小数相加
- 小数相加
- 超长正整数相加
- HWOJ 超长正整数相加
- 超长正整数相加
- 超长正整数相加
- HWOJ 超长正整数相加
- 超长正整数的相加
- 超长整数相加
- 超长正整数相加
- 超长正整数相加
- OJ------超长整数相加
- 超长正整数相加
- 超长正整数相加
- 超长正整数相加(OJ)
- 超长正整数相加
- 超长正整数相加
- 大数相加 华为oj 超长正整数相加
- 订单通知短信接口在各领域内的应用
- 二分匹配
- avrdude:stk500_recv():programmer is not responding
- 比 ack-grep 更快更好用的东东:the silver searcher
- PHP 网站模板核心类
- 超长小数相加
- java面试题
- 迷宫广搜
- ListView中显示不同的视图布局实现重用
- iOS 优化内存(六)开发必不可少的75个工具
- jQuery的deferred对象详解
- 直接拿来用!最火的Android开源项目(一)
- 持续集成与持续交付备忘录
- hduoj4861(Couple doubi)