求给定小数最接近的整数——pku3175
2011-03-27 21:31
232 查看
直接枚举整数算余数 明显会超时
枚举(小数+整数) 求方后四舍五入,后求根号后比较小数,看是否一致即可
注意:费解的精度问题
如:对219048452111求根号,然后对求得的数进行*10运算,到后来开始的第九位小数会变化,由4到3的变化?解决方法,直接乘1000,000,000后求第9位数
View Code
枚举(小数+整数) 求方后四舍五入,后求根号后比较小数,看是否一致即可
注意:费解的精度问题
如:对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); } }
相关文章推荐
- 如何在一堆正整数中(数组arr)找出与给定正整数(num)最接近的那个数(result)
- poj 3175(根据给出的小数部分求最小的整数)
- 给定一整数在有序的整数数组中找出与给定值最接近的k个整数
- leetcode-java.T016_threeSumClosest---给定包含n个整数数组S,找到S中的三个整数,从而使之和最接近给定的数,返回三个整数的总和.
- 346/5000 给定一个n个整数的数组S,在S中找到三个整数,使得总和最接近给定数量的目标。 返回三个整数的和。
- 给定一个整数N,找出一个比N大且最接近N,但二进制权值与该整数相同 的数
- PKU1401:给定一个整数N,那么N的阶乘N!末尾有多少个0。
- 任意给定一个大于等于10的整数A,请写一程序,以最小的时间复杂度找出比A小并且最接近A的一个整数B。要求:A的每位之和与B的每位之和相等 例:如果A=123 那么B=114
- 给定一个整数sum, 从有N个有序元素的数组中寻找元素a,b,使得a+b的结果最接近sum
- 给定区间[-2^31, 2^31]内的3个整数A、B和C,请判断A+B是否大于C。
- php,js小数取整数函数,丢弃小数部分,向上取整数,四舍五入,向下取整数 ...
- 给定一个整数,求其二进制数中1的个数
- 日志系统:字段类型的思考——String(字符串)、datetime(日期时间)、ip、int(整数)、float(小数)
- 给定两个32位的整数n和m,将m插进n的j到i的位置,n其他位置不变
- 第7节项目2-分离浮点数的整数和小数部分
- 编写程序,分离出一个实数的整数部分与小数部分,要求用函数完成
- 转: 编写程序,分离出一个实数的整数部分与小数部分,要求用函数完成
- 自动机--识别整数和小数
- 基于Visual C++2013拆解世界五百强面试题--题2-输出和为一个给定整数的所有组合
- Java 两个整数相除保留两位小数,将小数转化为百分数