題目:乙個整數,它加上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 返回 162、由於第一思路想要判斷乙個數字是否可以開平方根,即 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萬...