Posts pythonTip 40 整数解
Post
Cancel

pythonTip 40 整数解

题目描述:

给你两个整数a和b(-10000<a,b<10000),请你判断是否存在两个整数,他们的和为a,乘积为b。

若存在,输出Yes,否则输出No

示例:

输入:a = 9 b = 15

输出:No

例如:a=9,b=15, 此时不存在两个整数满足上述条件,所以应该输出No。

分析:

这个题目的描述有一点的问题,好吧,是问题很大。

现在我们再来看看这一个题目,我们小小的思考一下。我们的第一想法是什么? 我们这样去做兴许是可以的,毕竟我们的数据量相对于而言不是很大。

但是如果我们尝试 循环两个数的话,那这样的计算量就比较大了。 示例代码:

1
2
3
4
for i in range(-10000, 10000):
    for j in range(-10000, 10000):
        if i + j == a and i * j == b:
            # 得到的最后解

这样的话循环次数就有点点多了。

再想一想,其实我们得到一个解的时候,我们就可以得到第二个数。 假如现在的两个数是 x, y 当我们知道 x 的时候,那么 y = a - x

代码:

1
2
3
4
5
6
7
8
9
10
11
flag = "No"
for it in range(-10000, 10000):
    if it == 0:
        continue
    if b % it == 0:
        if (it + b // it) == a:
            flag = "Yes"

if b == 0:
    flag = "Yes"
print(flag)
This post is licensed under CC BY 4.0 by the author.
Trending Tags
Contents

pythonTip 39 简单题之输出格式练习

pythonTip 41 Py数

Trending Tags