重庆网站推广平台,网站推广方案策划书2000,做羞羞事的网站有哪些,wordpress 批量分类【题目来源】https://www.acwing.com/problem/content/792/【题目描述】 给定一个浮点数 n#xff0c;求它的三次方根。【输入格式】 共一行#xff0c;包含一个浮点数 n。【输出格式】 共一行#xff0c;包含一个浮点数#xff0c;表示问题的解。 注意#xff0c;结果保留…【题目来源】https://www.acwing.com/problem/content/792/【题目描述】 给定一个浮点数 n求它的三次方根。【输入格式】 共一行包含一个浮点数 n。【输出格式】 共一行包含一个浮点数表示问题的解。 注意结果保留 6 位小数。【数据范围】 −10000≤n≤10000【输入样例】 1000.00【输出样例】 10.000000【算法分析】 二分查找也称为折半查找是一种高效的查找方法。它基于分治策略利用数据的有序性每次将搜索范围缩小一半直至找到目标元素或搜索区间为空。二分查找要求必须采用顺序存储结构且其中的元素按关键字有序排列。整数二分的经典模板如下模板一从大到小查找结论 ←当我们将区间 [le, ri] 划分成 [le, mid] 和 [mid1, ri] 时其更新操作是 rimid 或者 lemid1计算 mid 时不需要加 1 见下文代码中的 int mid(leri)1; 。
void BinarySearch(vectorint v,int target) {int le0;int riv.size();while(leri) {int mid(leri)1;if(v[mid]target) lemid1;else rimid;}
}
模板二从小到大查找结论 →当我们将区间 [le, ri] 划分成 [le, mid-1] 和 [mid, ri] 时其更新操作是 rimid-1 或者 lemid此时为了防止死循环计算 mid 时需要加 1 见下文代码中的 int mid(leri1)1; 。
int BinarySearch(vectorint v,int target) {int le0;int riv.size();while(leri) {int mid(leri1)1;if(v[mid]target) lemid;else rimid-1;}
}
浮点数二分的经典模板如本题代码所示。 因为浮点数的精度很高只需要逐渐逼近题目要求的精度就可以了。这里需要注意的是需要预先设定一个阈值 eps一般是比题目的精度还要高 2 位比如题目要求的精度是1e-6那么就可以设eps1e-8。【算法代码】
#include bits/stdc.h
using namespace std;double le-100000;
double ri100000;int main() {double x;cinx;while(ri-le1e-8) {double mid(leri)/2;if(mid*mid*midx) lemid;else rimid;}printf(%.6f,ri);return 0;
}/*
in:1000.00
out:10.000000
*/
【参考文献】https://www.acwing.com/solution/content/17974/https://www.acwing.com/video/232/