PTA基础编程题目集 之 Python解法(7-18)

PTA基础编程题目集 之 Python解法(7-18)

7-18 二分法求多项式单根 (20分)

在这里插入图片描述

a3, a2, a1, a0 = map(float, input().split()) #这里的输入是float类型的!!!之前写的时候看了半天没看出来哪里错了
a, b = map(float, input().split()) 


def f(x):
    val = a3 * x ** 3 + a2 * x ** 2 + a1 * x + a0
    return val


flag = 1  # 标记
while b - a > 0.001:
    # if f(a) == 0 or f(b) == 0:
    #     flag = 0
    #     print(f'{a if not a else b :.2f}')
    #     break
    mid = (a + b) / 2
    if f(mid) == 0:
        flag = 0
        print(f'{mid:.2f}')
        break
    elif f(mid) * f(a) > 0:
        a = mid
    else:
        b = mid
if flag:  # 区间长度小于阈值的情况下
    print(f'{(a + b) / 2:.2f}')

发布了47 篇原创文章 · 获赞 2 · 访问量 1049

猜你喜欢

转载自blog.csdn.net/Weary_PJ/article/details/103985651
今日推荐