Trang chủLập trìnhC - C++Bài toán tính hiệu bình phương của tổng và tổng các bình...

Bài toán tính hiệu bình phương của tổng và tổng các bình phương

Tiếp tục thư giãn đầu óc với những bài toán lập trình nhỏ mà mình lấy từ Code Fights. Bài toán hôm nay của chúng ta có nội dung như sau:

Bài toán tính hiệu của bình phương của tổng với tổng các bình phương

Tạm dịch: Cho một số nguyên n. Tính hiệu của bình phương tổng từ 1 đến n và tổng các bình phương từ 1 đến n.

Ví dụ: Cho n = 4

Bình phương tổng từ 1 đến 4: (1 + 2 + 3 + 4)² = 10² = 100

Tổng các bình phương từ 1 đến 4: 1² + 2² + 3² + 4² =  31

Kết quả: 100 – 31 = 69

Bài giải hôm nay mình code bằng C++. Các bạn có thể xem:

Sau khi post lời giải lên thì mình nhận được một phản hồi của một anh đang là giảng viên bộ môn toán của một trường Cao đẳng đại ý như sau:

Bình phương của tổng từ 1 đến n:  n*(n+1)*(2*n+1)/6

Tổng của các bình phương từ 1 đến n: n*(n+1)/2 * [n*(n+1)/2 – (2*n+1)/3]

Sau khi thực hiện phép trừ rồi rút gọn lại công thức ta có biểu thức: n*(n+1)*(3n²-n-2)/12

Rõ ràng đây thật sự là một thuật toán rất tối ưu. Mình xin nhường để các bạn tự code.

Chúc các bạn thành công.

Huỳnh Mai Anh Kiệt

- Advertisement -
Huỳnh Mai Anh Kiệt
Huỳnh Mai Anh Kiệthttps://anhkiet.biz
Anh là một người đam mê công nghệ. Hiện tại anh là một lập trình viên cho Hura Apps - một startup nhỏ về công nghệ tại Quy Nhơn.

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

- Advertisment -

BÀI VIẾT MỚI

BẠN XEM CHƯA