您的位置:首页 > 其它

求给定小数最接近的整数——pku3175

2011-03-27 21:31 232 查看
直接枚举整数算余数 明显会超时
枚举(小数+整数) 求方后四舍五入,后求根号后比较小数,看是否一致即可
注意:费解的精度问题
如:对219048452111求根号,然后对求得的数进行*10运算,到后来开始的第九位小数会变化,由4到3的变化?解决方法,直接乘1000,000,000后求第9位数
View Code

#include<stdio.h>
#include<math.h>
int main()
{
__int64 l,s,j;
__int64 i,n,t1;
while(scanf("%I64d%I64d",&l,&s)!=EOF)
{
double t,st;
t=s*1.0/pow(10.0,l);
for(i=1;i<=99999999;i++)
{
n=(t+i)*(t+i)+0.5;
t1=sqrt(n*1.0);
st=sqrt(n*1.0);
st=st-t1;
t1=st*pow(10.0,l);
if(t1==s)
break;
}
printf("%I64d\n",n);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐