Danh mục: 58 Học Python – Tính trung bình cộng các số chính phương trong mảng mới nhất

58 Học Python – Tính trung bình cộng các số chính phương trong mảng

Bài 58 Tính trung bình cộng các số chính phương trong mảng bằng Python

Giới Thiệu

Trong bài viết này, chúng ta sẽ viết chương trình Python để tính trung bình cộng của các số chính phương trong một mảng số nguyên.

Khuyến mãi lớn thêm danh sách 10 bài tập python rèn luyện kỹ năng và nâng cao tay nghề:

  1. Bài 51 : Tính trung bình các số nguyên tố trong mảng bằng Python
  2. Bài 52: Tìm số âm lớn nhất trong mảng bằng Python
  3. Bài 53: Tìm số nguyên lớn nhì trong mảng bằng Python
  4. Bài 54: Tìm số nguyên nhỏ thứ 3 trong mảng bằng Python
  5. Bài 55: Đếm số lượng số nguyên khác nhau trong mảng bằng Python
  6. Bài 56: Đếm số lần xuất hiện của từng số trong mảng bằng Python
  7. Bài 57: Tìm số nguyên xuất hiện nhiều lần nhất trong mảng bằng Python
  8. Bài 58 Tính trung bình cộng các số chính phương trong mảng bằng Python
  9. Bài 59: In ra câu “Chao HoTen” bằng Python
  10. Bài 60: Viết xâu theo thứ tự ngược lại bằng Python

Cách Thực Hiện

  1. Kiểm tra từng số trong mảng có phải là số chính phương hay không.
  2. Nếu là số chính phương, cộng vào tổng và đếm số lượng số chính phương.
  3. Tính trung bình cộng bằng cách lấy tổng chia cho số lượng.
  4. Hiển thị kết quả.

Chương Trình Python

Cách 1: Sử dụng vòng lặp và kiểm tra thủ công

 

import math




# Hàm kiểm tra số chính phương

def la_so_chinh_phuong(n):

    can = int(math.sqrt(n))

    return can * can == n




# Hàm tính trung bình cộng các số chính phương trong mảng

def tinh_tb_so_chinh_phuong(mang):

    tong = 0

    dem = 0

    for so in mang:

        if la_so_chinh_phuong(so):

            tong += so

            dem += 1

   

    return tong / dem if dem > 0 else 0




# Nhập số lượng phần tử của mảng

n = int(input("Nhập số phần tử của mảng: "))

mang = [int(input(f"Nhập phần tử thứ {i+1}: ")) for i in range(n)]




# Tính trung bình cộng

ket_qua = tinh_tb_so_chinh_phuong(mang)

print(f"Trung bình cộng các số chính phương trong mảng là: {ket_qua}")

 

Cách 2: Sử dụng list comprehension (Tối ưu hơn)

 

import math




def la_so_chinh_phuong(n):

    can = int(math.sqrt(n))

    return can * can == n




# Hàm tính trung bình cộng các số chính phương trong mảng (cách tối ưu)

def tinh_tb_so_chinh_phuong_toi_uu(mang):

    so_chinh_phuong = [so for so in mang if la_so_chinh_phuong(so)]

    return sum(so_chinh_phuong) / len(so_chinh_phuong) if so_chinh_phuong else 0




# Nhập số lượng phần tử của mảng

n = int(input("Nhập số phần tử của mảng: "))

mang = [int(input(f"Nhập phần tử thứ {i+1}: ")) for i in range(n)]




# Tính trung bình cộng

ket_qua = tinh_tb_so_chinh_phuong_toi_uu(mang)

print(f"Trung bình cộng các số chính phương trong mảng là: {ket_qua}")

 

So Sánh Hai Cách

Phương phápĐộ phức tạpƯu điểmNhược điểm
Dùng vòng lặpO(n)Dễ hiểu, trực quanMã dài hơn
Dùng list comprehensionO(n)Ngắn gọn, tối ưuCần hiểu list comprehension

Ví Dụ Chạy Chương Trình

Nhập số phần tử của mảng: 6

Nhập phần tử thứ 1: 4

Nhập phần tử thứ 2: 7

Nhập phần tử thứ 3: 9

Nhập phần tử thứ 4: 16

Nhập phần tử thứ 5: 5

Nhập phần tử thứ 6: 25

Trung bình cộng các số chính phương trong mảng là: 13.5

Kết Luận

Bài viết đã hướng dẫn cách tính trung bình cộng các số chính phương trong mảng bằng hai phương pháp:

  • Cách cơ bản: Dùng vòng lặp, dễ hiểu.
  • Cách tối ưu: Dùng list comprehension, ngắn gọn và hiệu quả hơn.

Hy vọng bài viết hữu ích cho bạn!

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao