Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 2와 7로 나누어 떨어지는 처음 N개의 자연수의 합

<시간/>

이 문제에서 숫자 N이 주어집니다. 우리의 임무는 2와 7로 나누어 떨어지는 처음 N개의 자연수의 합을 찾는 것입니다.

따라서 여기에 숫자 N이 주어지고 프로그램은 2와 7로 나눌 수 있는 1에서 N 사이의 숫자의 합을 찾습니다.

문제를 이해하기 위해 예를 들어보겠습니다.

입력 -

N =10

출력 -

37

설명 -

합계 =2 + 4 + 6 + 7 + 8 + 10 =37

따라서 문제를 해결하기 위한 기본 아이디어는 2 또는 7로 나눌 수 있는 모든 숫자를 찾는 것입니다. 이 합계는 -

2로 나눌 수 있는 수의 합 + 7로 나눌 수 있는 수의 합 - 14로 나눌 수 있는 수의 합

이 모든 합계는 A.P. 공식을 사용하여 생성할 수 있습니다.

<미리>S2 =[((N/2)/2) * ( (2*2)+((N/2-1)*2) )]S7 =[( (N/7)/2) * ( (2*7)+((N/7-1)*7) )]S14 =[( (N/14)/2) * ( (2*14)+((N/2-1)*14) )]

최종 합계,

<미리>합계 =S2 + S7 - S14Sum =[( ((N/2)/2) * ( (2*2)+((N/2-1)*2) )] + [((N/7) /2) * ( (2*7)+((N/7-1)*7) )] - [( (N/14)/2) * ( (2*14)+((N/2-1) )*14) )]

예시

솔루션을 설명하는 프로그램,

#include  네임스페이스 사용 std;int findSum(int N) { return ( ((N/2)*(2*2+(N/2-1)*2)/2) + ((N /7)*(2*7+(N/7-1)*7)/2) - ((N/14)*(2*14+(N/14-1)*14)/2) ); }int 메인(){ 정수 N =42; cout<<"2와 7로 나누어 떨어지는 자연수의 합은 "< 

출력

2와 7로 나누어 떨어지는 자연수의 합은 525입니다.