Computer >> Máy Tính >  >> Lập trình >> lập trình C

Tổng các số đến N chia hết cho 2 hoặc 5 trong lập trình c

Có thể tìm tổng n số tự nhiên chia hết cho 2 hoặc 5 bằng cách tìm tổng các số tự nhiên đến N chia hết cho 2 và tổng các số tự nhiên đến N chia hết cho 5. Cộng hai tổng này và sau đó trừ nó cho tổng các số tự nhiên đến N mà chia hết cho 10, điều này cho chúng ta kết quả mong muốn. Phương pháp này là một phương pháp hiệu quả có thể được sử dụng để tìm tổng giá trị lớn nhất của n.

Chắc hẳn một số bạn đang nghĩ đến việc sử dụng một vòng lặp và câu lệnh điều kiện, sau đó cộng tất cả các số chia hết cho 2 hoặc 5 nhưng phương pháp này không hiệu quả vì nó có độ phức tạp về thời gian là n. Điều này có nghĩa là đối với các giá trị lớn của n, chương trình sẽ chạy vòng lặp n số lần. Và việc thực thi này sẽ làm cho chương trình nặng hơn.

Công thức tìm tổng của n số tự nhiên chia hết cho 2

Sum2 = ((n / 2) * (4 + (n / 2 - 1) * 2)) / 2

Công thức tìm tổng của n số tự nhiên chia hết cho 5

Sum5 = ((n / 5) * (10 + (n / 5 - 1) * 5)) / 2

Công thức tìm tổng của n số tự nhiên chia hết cho 10

Sum10 = ((n / 10) * (20 + (n / 10 - 1) * 10)) / 2

Đầu ra mong muốn

Sum = Sum2 + Sum5 - Sum10

Ví dụ

#include <stdio.h>
int main() {
   int n = 25;
   long int sum2, sum5, sum10;
   sum2 = ((n / 2) * (4 + (n / 2 - 1) * 2)) / 2;
   sum5 = ((n / 5) * (10 + (n / 5 - 1) * 5)) / 2;
   sum10 = ((n / 10) * (20 + (n / 10 - 1) * 10)) / 2;
   long int sum = sum2 + sum5 - sum10;
   printf("Sum is %d", sum);
   return 0;
}

Đầu ra

Sum is 201