文章目錄
- 演算法訓練 區間k大數查詢(python3)
- 演算法提高 二分法查找陣列元素(python3)
- 基礎練習 回文數(python3)
- 基礎練習 字母圖形(python3)
- 演算法訓練 猴子吃包子(python3水題)
演算法訓練 區間k大數查詢(python3)
問題描述
給定一個序列,每次詢問序列中第l個數到第r個數中第K大的數是哪個,
輸入格式
第一行包含一個數n,表示序列長度,
第二行包含n個正整數,表示給定的序列,
第三個包含一個正整數m,表示詢問個數,
接下來m行,每行三個數l,r,K,表示詢問序列從左往右第l個數到第r個數中,從大往小第K大的數是哪個,序列元素從1開始標號,
輸出格式
總共輸出m行,每行一個數,表示詢問的答案,
樣例輸入
5
1 2 3 4 5
2
1 5 2
2 3 2
樣例輸出
4
2
n = input()
s = list(map(int, input().split()))
m = int(input())
a = []
for i in range(m):
a.append(list(map(int,input().split())))
for temp in a:
l = int(temp[0]) - 1
r = int(temp[1])
k = int(temp[2]) - 1
s1 = sorted(s[l:r], reverse=True)
print(s1[k])
演算法提高 二分法查找陣列元素(python3)
問題描述
用遞回函式實作二分法查找陣列元素,
補充:要求給定陣列采用如下代碼定義
int data[200];
for (i=0; i<200; i++)
data[i]=4i+6;
輸入格式
輸入一個待查找的整數(該整數一定在陣列data中),
輸出格式
該整數在陣列中的指標,
樣例輸入
一個滿足題目要求的輸入范例,
例1:
262
例2:
438
例3:
774
樣例輸出
與上面的樣例輸入對應的輸出,
例1:
64
例2:
108
例3:
192
資料規模和約定
輸入資料中每一個數的范圍,
輸入資料必須滿足4i+6,i=0,1,2,3,…,198,199,
num = int(input())
data = [x*4 + 6 for x in range(200)]
md = 100
left = 0
right = 200
while True:
md = int((left+right)/2)
if num == data[md]:
print(md)
break
elif num < data[md]:
right = md
else:
left = md


基礎練習 回文數(python3)
問題描述
1221是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的,編程求所有這樣的四位十進制數,
輸出格式
按從小到大的順序輸出滿足條件的四位十進制數,
思路1:
從1001到9999列舉,尋找符合要求的數字進行輸出
思路2:
既然題目求回文,何不自己構建回文吶,四位,只需選取其中兩位將其后邊添加,使其變成回文,
for i in range(10,100):
temp = str(i)
temp = temp+temp[1]+temp[0]
print(int(temp))

基礎練習 字母圖形(python3)
問題描述
利用字母可以組成一些美麗的圖形,下面給出了一個例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
這是一個5行7列的圖形,請找出這個圖形的規律,并輸出一個n行m列的圖形,
輸入格式
輸入一行,包含兩個整數n和m,分別表示你要輸出的圖形的行數的列數,
輸出格式
輸出n行,每個m個字符,為你的圖形,
樣例輸入
5 7
樣例輸出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
資料規模與約定
1 <= n, m <= 26,
正解

a,b = map(int,input().split())
lst = [chr(x) for x in range(ord('A'),ord('A')+26)]
s = ''.join(lst)
temp = s[0:b]
tem = ''
for i in range(a+1):
j=1
tem = temp
if i !=0:
while j != i:
tem = lst[j] + tem
j = j + 1
print(tem[0:b])
tem = ''

演算法訓練 猴子吃包子(python3水題)
問題描述
從前,有一只吃包子很厲害的猴子,它可以吃無數個包子,但是,它吃不同的包子速度也不同;肉包每秒鐘吃x個;韭菜包每秒鐘吃y個;沒有餡的包子每秒鐘吃z個;現在有x1個肉包,y1個韭菜包,z1個沒有餡的包子;問:猴子吃完這些包子要多久?結果保留p位小數,
輸入格式
輸入1行,包含7個整數,分別表示吃不同包子的速度和不同包子的個數和保留的位數,
輸出格式
輸出一行,包含1個實數,表示吃完所有包子的時間,
x,y,z,x1,y1,z1,p = map(int,input().split())
time = x1/x + y1/y + z1/z
print(round(time,p))

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/267134.html
標籤:python
