python每日一練(3)

2021-10-02 02:21:09 字數 793 閱讀 5809

#匯入math以使用sqrt

import math

for n in range(10000):

#n + 100 和 n + 268後開平方,再轉化為整型值

x = int(math.sqrt(n + 100))

y = int(math.sqrt(n + 268))

if x * x == n + 100 and y * y == n + 268:

print(n)

列印結果:

21261

1581

程式分析

首先,假設有乙個x是符合條件的完全平方數,即:x * x = x + 100(自己乘以自己=自己+100,當然程式不能這麼寫),並且x * x = x + 268

x = int(math.sqrt(n + 100))先驗證的是等號右邊的,即:x + 100和x + 268

開平方後,還需要驗證自己相乘是否滿足等號右邊的要求,即: if x * x == n + 100 and y * y == n + 268

其他回答,其實這個更符合我的思路:

import math

for i in range(10000):

if math.sqrt(i+100)%1 == 0 and math.sqrt(i+268)%1 == 0: #%1 == 0可以判斷開根號的數否整數

print(i)

每日一練3

1.過載overload是乙個類中多型性的一種表現 2.過載要求同名方法的引數列表不同 引數型別,引數個數甚至是引數順序 3.過載的時候,返回值型別可以相同也可以不相同。無法以返回型別作為過載函式的區分標準 1.發生在父類與子類之間 2.方法名,引數列表,返回型別 除過子類中方法的返回型別是父類中返...

python每日一練

人生苦短,我用python 2018.6.5 有個目錄,裡面是你自己寫過的程式,統計一下你寫過多少行 包括空行和注釋,但是要分別列出來 coding utf 8 import re import glob defcodecolletion path filelist glob.glob path p...

Python每日一練

人生苦短,我用python 2018.6.13 最近事情有點多,有幾天沒寫了,正好最近需要統計一下各組排名,也就拿python代替手工了 各組給出其他組的排名,統計每個組最終的得分,第一名為0.5,第二名0.4,以此類推。coding utf 8 groups 3,2,5,4,6 1,3,5,6,4...