三种语言实现浮点数二分(C++/Python/Java)

题目

给定一个浮点数 𝑛,求它的三次方根。

输入格式

共一行,包含一个浮点数 𝑛。

输出格式

共一行,包含一个浮点数,表示问题的解。

注意,结果保留 6 位小数。

数据范围

−10000≤𝑛≤10000

输入样例:

1000.00

输出样例:

10.000000

C++

#include <bits/stdc++.h>

using namespace std;

int main()
{
    double d;
    cin >> d;
    double l = -50, r = 50;
    while(r-l>1e-7)
    {
        double mid = (l + r) / 2.0;
        if(mid * mid * mid > d)
            r = mid;
        else
            l = mid;
    }
    printf("%.6f",l);
}

Python

n = float(input())
l = -50.0
r = 50.0
while r - l > 1e-7:
    mid = (l + r) / 2.0
    if mid * mid * mid > n:
        r = mid
    else:
        l = mid
print("%.6f" % l)

Java

import java.util.*;
 
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        double n = sc.nextDouble();
        double l = -50.0, r = 50.0;
        while(r - l > 1e-7){
            double mid = (r + l) / 2.0;
            if(mid * mid * mid > n) r = mid;
            else l = mid;
        }
        System.out.printf("%.6f",l);
    }
}
posted @ 2024-07-28 20:41  火车驶向云外0218  阅读(30)  评论(0)    收藏  举报