Đăng nhập để hỏi chi tiết


Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
# Tim so lon nhat (nho nhat) va vi tri cua no trong N so do
def maxNumber():
a = list(map(int, input("Nhap N so: ").split()))
max_num = a.index(max(a))
return a, max_num
a, max_num = maxNumber()
print("So lon nhat la: ", max(a))
print("Vi tri cua so lon nhat la: ", max_num+1)
# Tinh Tb cong cac phan tu so chan trong N so do
def tbCongchan():
b = list(map(int, input("Nhap N so: ").split()))
chan = [x for x in b if x % 2 == 0]
return sum(chan) / len(chan) if chan else 0
tb_chan = tbCongchan()
print("Trung binh cong cac so chan la: ", tb_chan)
# Dem trong N co bao nhieu so bang 5
def soBang5():
c = list(map(int, input("Nhap N so: ").split()))
count = c.count(5)
return count
count = soBang5()
print("So luong so bang 5 la: ", count)
# Tong binh phuong cac phan tu le
def tongbinhphuongphantule():
d = list(map(int, input("Nhap N so: ").split()))
le = [x for x in d if x % 2 != 0]
return sum(x**2 for x in le)
tong = tongbinhphuongphantule()
print("Tong binh phuong cac so le la: ", tong)
# Tim va in ra man hinh trong A so 5 xuat hien vi tri dau tien, cuoi cung
def vitriso5():
x = list(map(int, input("Nhap N so: ").split()))
vitridau = x.index(5) if 5 in x else -1
vitricuoi = len(x) - 1 - x[::-1].index(5) if 5 in x else -1
return vitridau, vitricuoi
vitridau, vitricuoi = vitriso5()
if vitridau != -1:
print("Vi tri dau tien cua so 5 la: ", vitridau + 1)
print("Vi tri cuoi cung cua so 5 la: ", vitricuoi + 1)
else:
print("So 5 khong xuat hien trong danh sach.")
# Su dung ba thuat toan sap xep de sap xep day vua nhap theo thu tu tang dan, giam dan
def sapxep1():
y = list(map(int, input("Nhap N so: ").split()))
tangdan = sorted(y)
giamdan = sorted(y, reverse=True)
return tangdan, giamdan
tangdan, giamdan = sapxep1()
print("Tang dan: ", tangdan)
print("Giam dan: ", giamdan)
def sapxep2():
z = list(map(int, input("Nhap N so: ").split()))
z_1 = list(z)
n = len(z_1)
for i in range(n):
for j in range(0, n-i-1):
if z_1[j] > z_1[j+1]:
z_1[j], z_1[j+1] = z_1[j+1], z_1[j]
return z_1
z_1 = sapxep2()
print("Tang dan: ", z_1)
print("Giam dan: ", z_1[::-1])
def sapxep3():
w = list(map(int, input("Nhap N so: ").split()))
w_1 = list(w)
n = len(w_1)
for i in range(n):
min_idx = i
for j in range(i+1, n):
if w_1[j] < w_1[min_idx]:
min_idx = j
w_1[i], w_1[min_idx] = w_1[min_idx], w_1[i]
return w_1
w_1 = sapxep3()
print("Tang dan: ", w_1)
print("Giam dan: ", w_1[::-1])
Hãy giúp mọi người biết câu trả lời này thế nào?
def nhap_mang():
while True:
try:
n = int(input("Nhập số lượng phần tử N: "))
if n > 0:
break
print("N phải là số nguyên dương. Vui lòng nhập lại.")
except ValueError:
print("Vui lòng nhập một số nguyên hợp lệ.")
a = []
for i in range(n):
while True:
try:
gia_tri = int(input(f"Nhập phần tử thứ {i}: "))
a.append(gia_tri)
break
except ValueError:
print("Giá trị không hợp lệ. Vui lòng nhập số nguyên.")
return a
def tim_max_min(a):
if not a: return
so_lon_nhat = max(a)
so_nho_nhat = min(a)
vi_tri_max = [i for i, x in enumerate(a) if x == so_lon_nhat]
vi_tri_min = [i for i, x in enumerate(a) if x == so_nho_nhat]
print(f"* Số lớn nhất là {so_lon_nhat}, nằm ở vị trí (index): {vi_tri_max}")
print(f"* Số nhỏ nhất là {so_nho_nhat}, nằm ở vị trí (index): {vi_tri_min}")
def trung_binh_cong_chan(a):
so_chan = [x for x in a if x % 2 == 0]
if so_chan:
tbc = sum(so_chan) / len(so_chan)
print(f"* Trung bình cộng các số chẵn: {tbc}")
else:
print("* Không có số chẵn nào trong mảng.")
def dem_so_5(a):
so_luong_5 = a.count(5)
print(f"* Số lượng số 5 trong mảng: {so_luong_5}")
def tong_binh_phuong_le(a):
tong = sum(x**2 for x in a if x % 2 != 0)
print(f"* Tổng bình phương các phần tử số lẻ: {tong}")
def vi_tri_dau_cuoi_so_5(a):
if 5 in a:
vi_tri_dau = a.index(5)
vi_tri_cuoi = len(a) - 1 - a[::-1].index(5)
print(f"* Số 5 xuất hiện lần đầu ở vị trí {vi_tri_dau}, lần cuối ở vị trí {vi_tri_cuoi}")
else:
print("* Số 5 không xuất hiện trong mảng nên không có vị trí đầu/cuối.")
# 3 thuật toán sắp xếp:
def sap_xep_noi_bot(arr, reverse=False):
a = arr.copy()
n = len(a)
for i in range(n):
for j in range(0, n - i - 1):
if (a[j] < a[j+1]) if reverse else (a[j] > a[j+1]):
a[j], a[j+1] = a[j+1], a[j]
return a
def sap_xep_chon(arr, reverse=False):
a = arr.copy()
n = len(a)
for i in range(n):
idx = i
for j in range(i+1, n):
if (a[j] > a[idx]) if reverse else (a[j] < a[idx]):
idx = j
a[i], a[idx] = a[idx], a[i]
return a
def sap_xep_chen(arr, reverse=False):
a = arr.copy()
for i in range(1, len(a)):
key = a[i]
j = i - 1
while j >= 0 and ((key > a[j]) if reverse else (key < a[j])):
a[j+1] = a[j]
j -= 1
a[j+1] = key
return a
def main():
print("=== CHƯƠNG TRÌNH XỬ LÝ MẢNG ===")
a = nhap_mang()
print(f"\n=> Mảng bạn vừa nhập là: {a}\n")
print("--- KẾT QUẢ ---")
tim_max_min(a)
trung_binh_cong_chan(a)
dem_so_5(a)
tong_binh_phuong_le(a)
vi_tri_dau_cuoi_so_5(a)
print("\n--- SẮP XẾP MẢNG (3 THUẬT TOÁN) ---")
print("1. Sắp xếp Nổi bọt (Bubble Sort):")
print(" - Tăng dần:", sap_xep_noi_bot(a))
print(" - Giảm dần:", sap_xep_noi_bot(a, reverse=True))
print("2. Sắp xếp Chọn (Selection Sort):")
print(" - Tăng dần:", sap_xep_chon(a))
print(" - Giảm dần:", sap_xep_chon(a, reverse=True))
print("3. Sắp xếp Chèn (Insertion Sort):")
print(" - Tăng dần:", sap_xep_chen(a))
print(" - Giảm dần:", sap_xep_chen(a, reverse=True))
if __name__ == "__main__":
main()Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin