Python 練習例項3

2021-10-02 15:00:46 字數 1568 閱讀 8459

題目:乙個整數,它加上100後是乙個完全平方數,再加上168又是乙個完全平方數,請問該數是多少?

程式分析:

假設該數為 x。

1、則:x + 100 = n2, x + 100 + 168 = m2

2、計算等式:m2 - n2 = (m + n)(m - n) = 168

3、設定: m + n = i,m - n = j,i * j =168,i 和 j 至少乙個是偶數

4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要麼都是偶數,要麼都是奇數。

5、從 3 和 4 推導可知道,i 與 j 均是大於等於 2 的偶數。

6、由於 i * j = 168, j>=2,則1 < i < 168 / 2 + 1

7、接下來將 i 的所有數字迴圈計算即可。

for i in range(1,85):

if 168 % i == 0:

j = 168 / i

if i >= j and (i + j)%2 == 0 and (i - j)%2 == 0:

m = (i + j) / 2

n = (i - j) / 2

x = n * n - 100

print(x)

以上**執行結果如下:

-99.0

21.0

261.0

1581.0

tips:

1、看到這道題目,首先想到的是平方。

python中 **  表示冪,即返回x的y次方。例項: 2 ** 4  返回 16 

2、由於第一思路想要判斷乙個數字是否可以開平方根,即 x ** 0.5 ,但是得到的結果值均為浮點型。

聯想到判斷乙個數字是否為整型。有兩種方法:

num = 2

方法一:type(num)

方法二:isinstance (num,int)

isinstance() 與 type() 區別:

如果要判斷兩個型別是否相同推薦使用 isinstance()

class a:

pass

class b(a):

pass

isinstance(a(), a) # returns true

type(a()) == a # returns true

isinstance(b(), a) # returns true

type(b()) == a # returns false

以下是 isinstance() 方法的語法:

isinstance(object, classinfo)
如果物件的型別與引數二的型別(classinfo)相同則返回 true,否則返回 false。。

菜鳥教程 練習例項28 (python3)

題目 有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第乙個人大兩歲。最後問第乙個人,他說是10歲。請問第五個人多大?程式分析 利用遞迴的方法,遞迴分為回推和遞推兩個階段。要想知道第五個人歲數,需知道第四...

菜鳥教程 練習例項29 (python3)

題目 給乙個不多於5位的正整數,要求 一 求它是幾位數,二 逆序列印出各位數字。程式分析 學會分解出每一位數。coding utf 8 defmain sum 1 int input 請輸入乙個數 a int sum 1 10000 b int sum 1 1000 10 c int sum 1 1...

Python 練習例項2

題目2 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提10 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10 提成,高於10萬元的部分,可提成7.5 20萬到40萬之間時,高於20萬元的部分,可提成5 40萬到60萬之間時高於40萬元的部分,可提成3 60萬到100萬...