Python入门实践题

# coding=utf-8

# 导入math模块
import math

# 输入两个整数a和b
a = int(input())
b = int(input())

# 请在此添加代码,要求判断是否存在两个整数,它们的和为a,积为b
########## Begin ##########
c = a ** 2 - 4 * b
print(math.sqrt(c))
x_1 = (a - math.sqrt(c)) / 2
x_2 = (a + c ** 0.5) / 2
print(x_1)

输入9和20
输出
1.0
4.0

也就是说求平方根必定输出浮点数

我的想法是先求出x的两个解,如果是整数那么就是存在的,如果不是就不存在,但是这里求完平方根之后会出现.0的情况,就不能判断是否是整数了,这种思路就解不出来了。
那么进一步去想,如果整数都是1.0、4.0这种的话,我们可以判断小数点的位数,如果大于1则判断为小数,小于1则判断为整数,可能不严谨,但是应付一个作业是可以的了。

通关成功

# coding=utf-8

# 导入math模块
import math

# 输入两个整数a和b
a = int(input())
b = int(input())

# 请在此添加代码,要求判断是否存在两个整数,它们的和为a,积为b
########## Begin ##########
c = a ** 2 - 4 * b
x_1 = (a - math.sqrt(c)) / 2
x_2 = (a + c ** 0.5) / 2
x_1 = len(str(x_1).split(".")[1])
x_2 = len(str(x_2).split(".")[1])
if(c >= 0):
    if(x_1 <= 1 and x_2 <= 1):
        print("Yes")
    else:
        print("No")
else:
    print("No")

但是看了参考答案之后,发现解题思路才是重点。

# coding=utf-8
# 导入math模块
import math
# 输入两个整数a和b
a = int(input())
b = int(input())
# 请在此添加代码,要求判断是否存在两个整数,它们的和为a,积为b
########## Begin ##########
x1 = int(float(a+math.sqrt(a**2-4*b))/2)
x2 = int(float(a-math.sqrt(a**2-4*b))/2)
if x1+x2 == a and x1*x2 == b:
    print('Yes')
else:
    print('No')
########## End ##########

他是首先把x1和x2求出来,并变成长整型,再利用韦达定理去判断是否是函数的根。

本文链接: https://blog.wubuster.com/archives/119.html
1 + 4 =
1 评论
    L.QQ Browser 6Android O
    4月4日 回复

    很棒!