2 또는 5로 나누어지는 n개 자연수의 합은 2로 나누어지는 N까지의 모든 자연수의 합과 5로 나누어지는 N까지의 모든 자연수의 합을 구하면 구할 수 있습니다. 이 두 합을 10으로 나눌 수 있는 N 내의 자연수의 합으로 빼면 이것이 우리가 원하는 것입니다. 이 방법은 큰 n 값의 합을 구하는 효율적인 방법입니다.
루프와 조건문을 사용한 다음 2나 5로 나눌 수 있는 모든 숫자를 더하는 것을 생각하시는 분들도 계시겠지만, 이 접근 방식은 n차의 시간 복잡도를 가지므로 비효율적입니다. 이는 n 값이 더 클 경우 프로그램이 루프를 n 번 실행한다는 것을 의미합니다. 그리고 이렇게 하면 프로그램이 더 무거워집니다.
2로 나누어지는 n개의 자연수의 합을 찾아보세요
Sum2 = ((n / 2) * (4 + (n / 2 - 1) * 2)) / 2
5로 나누어지는 n개의 자연수의 합을 찾아보세요
Sum5 = ((n / 5) * (10 + (n / 5 - 1) * 5)) / 2
10으로 나누어지는 n개의 자연수의 합을 찾아보세요
Sum10 = ((n / 10) * (20 + (n / 10 - 1) * 10)) / 2
Sum = Sum2 + Sum5 - Sum10
#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; }
Sum is 201
위 내용은 다음 내용을 중국어로 번역하세요. C 프로그래밍에서 2 또는 5로 나눌 수 있는 N 내의 숫자의 합을 구하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!