雕刻时光

just do it……nothing impossible
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2011-03-27 21:31  huhuuu  阅读(555)  评论(0编辑  收藏  举报
直接枚举整数算余数  明显会超时
枚举(小数+整数) 求方后四舍五入,后求根号后比较小数,看是否一致即可
注意:费解的精度问题
如:对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);
}
}