題目:[python,演算法,函式]全數字問題
題目描述:
如果乙個n位數(n<10)剛好包含了1至n中所有數字各一次則稱它們是全數字(pandigital)的,例如四位數1324就是1至4全數字的。從鍵盤上輸入一組整數(不止乙個),輸出其中的全數字,若找不到則輸出「not found」。形如:
def pandigital(nums):
…return lst
ifname== 「main」:
lst = pandigital(eval(input()))
呼叫函式根據結果輸出
輸入樣例:
1243,322,321,1212,2354
輸出樣例:
1243
321題目:[python,函式]尋找第乙個n位的斐波那契數
題目描述:
斐波那契數列的定義如下:
f1 = 1
f2 = 1
fn = fn-1 + fn-2
根據斐波那契數列的遞迴定義可以很容易得知其前10位的數字分別是:1, 1, 2, 3, 5, 8, 13, 21, 34, 55,第一次出現的兩位數是第7項數字13,自定義函式fib_n(n)計算斐波那契數列中第一次出現n位數字的是哪一項,返回項的序號及該數。輸入待尋找的斐波那契數列中第一次出現的位數n,呼叫fib_n()函式計算並輸出滿足要求的項的序號及數。
輸入:[1,1000]範圍內的乙個整數
輸出:第一次出現的該數長度的斐波那契數
輸入樣例:
10輸出樣例:
fib(45)=1134903170
題目:[python,兩重迴圈,函式]測試尼克徹斯定理
題目描述:
尼克徹斯定理即任何乙個整數的立方都可以寫成一串連續奇數的和。例如:
13=1
23=3+5
33=7+9+11
43=13+15+17+19
53=21+23+25+27+29
……定義函式nicoqish(x)返回和為x的連續奇數的第乙個和最後乙個值,某乙個數可能可以寫成多組連續奇數和,只要求返回起始奇數最小的那一組資訊。在主模組中輸入資料n呼叫函式輸出前n個數相關的式子。
輸入:乙個[1,20]之間的整數n
輸出:[1,n]範圍內的整數相關的多行式子
輸入樣例:
5輸出樣例:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=1+3+5+7+9+11+13+15
5^3=21+23+25+27+29
題目:[python,演算法,函式]默尼森數
題目描述:
編寫判斷素數的函式並找出前n個默尼森數。p是素數且m也是素數,並且滿足等式m=2p - 1,則稱m為默尼森數。例如,p=5, m=2p - 1 = 31,5和31都是素數,因此31是默尼森數。
輸入:前n個,n的範圍是[2, 8]
輸出:p和m,p和m之間用乙個空格隔開
輸入樣例:
2輸出樣例:
2 33 7
題目:[python,演算法,函式]兩數之和
題目描述:
自定義函式twonums_sum(n,lst),在列表lst中查詢是否有兩數之和等於n,若有則返回兩數的下標,否則返回-1。對於乙個不包括0和重複數字的有序列表[1,4,5,6,7,8,9,10,11,12,13,15,18,19,20,21,29,34,54,65],從鍵盤輸入n,呼叫函式twonums_sum(n,lst),輸出滿足條件的兩個數的下標(找到一組即可且要求其中的乙個數盡量小),若所有數均不滿足條件則輸出「not found」。
輸入:和n
輸出:滿足條件時輸出乙個包含兩個數的元組,否則輸出not found
輸入樣例:
17輸出樣例:
(1, 10)
1
.def
pandigital
(nums)
: lst=
for item in nums:
temp=
str(item)
lenth=
len(temp)
num=
set(temp)
nummax=
int(
max(num)
) numm=
len(num)
if numm==lenth and nummax==lenth:
#字串前後長度無變化;字串最大值對應個數
return lst
if __name__==
"__main__"
: lst=pandigital(
eval
(input()
)if lst:
#此處報錯
for item in lst:
print
(item)
else
:print
('no found)2.
deffenjie
(n):
#分解質因數的直接辦法,不過另乙個是判斷素數
lst=
k=2while k<=n:
if n%k==0:
n//=k#如果一直可以除就可以一直除下去
else
: k+=
1return lst
if __name__==
"__main__"
: n=
int(
input()
) result=fenjie(n)
print
('{}={}.format(n,'
*'.join(
map(
str,result)))
)3.def
fib_n
(n):
f1,f2=1,
1 f=f1+f2
f_index=
3while
len(
str(f)
)!=n:
#好好理解遞迴的精髓
f1=f2
f2=f
f=f2+f1
f_index+=
1return f_index,f
n=int
(input()
)f_index,f=fib_n(n)
print
('fib({})={}'
.format
(f_index,f))4
.5,import math
defmns
(x):
if x==1:
return
false
if x%2==
0:return x==
2 k=
int(math.sqrt(x)
)for j in
range(3
,k+1,2
):if x%j==0:
return
false
return
true
count=1p=
1n=int(
input()
)while count<=n:
p+=1if mns(p)
:if mns(
2**p-1)
:print
(p,2
**p-1)
count+=16
.def
made
(n,lst)
:for i in lst:
t=lst.index(i)
for j in lst[t:]:
if i+j==n:
return lst.index(i)
,lst.index(j)
else
:return
0lst1=[1
,4,5
,6,7
,8,9
,10,11
,12,13
,15,18
,19,20
,21,29
,34,54
,65]n=
int(
input()
)y=made(n,lst)
ifnot y:
print
('no found'
)else
:print
(y)#未發現錯誤 但是算的不對7.
defclean_list
(lst)
:for i in
range
(len
(lst)):
coffee=
''for j in lst[i]
:#通過索引直接定位,簡便太多
if j.isalpha():
#逐個字母進行判斷,判斷為1時將加入新的字串
coffee +=j
else
: lst[i]
=coffee
return lst
if __name__ ==
'__main__'
: nlist =
zip(
range(1
,len
(coffeelst)+1
),clean_list(coffeelst)
)for i,j in nlist:
print
(i,j)
是不是一次覺得比一次迷了啊~~?祝我明天考試穩過吧! python部分函式 1
1 buckets 乙個桶指的是滿足乙個文件的集合 2 map map作為python的乙個高階函式,主要的作用在於接收乙個函式,通過函式處理後續的list並返回經過函式處理過後的list.3 shuffle 返回隨機排序後的序列 4 numpy和asarray都可以將結構化資料轉化為ndarrra...
python函式實驗 Python實驗函式
實驗8 函式 一 實驗目的 1 理解自定義函式過程的定義和呼叫方法 2 掌握自定義函式的定義和呼叫方法 3 理解函式中的引數的作用 實驗內容 1 編寫一函式fabonacci n 其中引數n代表第n 次的迭代。while迴圈 def fib n if n 1 or n 2 return 1 a 1b...
Python 函式部分
1 區域性變數 區域性變數名只存在於函式這一區域性,這被稱之為變數的作用域 scope 所有變數的作用域是它們被定義的塊,從定義它們的名字的定義點開始。2 全域性變數 可以使用定義於函式之外的變數的值 假設函式中沒有具有相同名字的變數 如果之外有變數,則更改後覆蓋原值。3 預設引數值 使一些引數可選...