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

C++에서 K의 모듈로가 R을 산출하는 자연수의 합(최대 N)


이 문제에서 세 개의 숫자 N, K 및 R이 제공됩니다. 우리의 임무는 K와 모듈로가 적용되는 자연수의 합(최대 N)을 찾는 프로그램을 만드는 것입니다. 수익률 R.

다음 조건을 만족하는 N보다 작은 모든 숫자를 더할 것입니다. i%K ==R.

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

입력

N = 14, K = 4, R = 1

출력

28

설명 - N보다 작은 모든 수, 4로 나눈 나머지가 1인 수는 모두 1, 5, 9, 13입니다.

이 문제를 해결하기 위해 우리는 R에서 N으로 반복하고 값을 K만큼 증가시킵니다. 따라서 주어진 조건을 만족하는 짝수를 얻습니다. 그리고 합계에 더하세요.

여기에서 우리는 정규 루프, 즉 간격으로 1을 사용할 수 있었습니다. 하지만 시간이 덜 걸리기 전에 이것을 사용했습니다.

예시

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

#include <iostream>
using namespace std;
int CalcSumofRem(int N, int K, int R){
   int sum = 0;
   for (int i = R; i <= N; i+= K) {
      if (i % K == R)
         sum += i;
   }
   return sum;
}
int main(){
   int N = 14, K = 4, R = 1;
   cout<<"Sum of natural numbers (up to "<<N<<") whose modulo with "<<K<<" yields "<<R<<" is "<<CalcSumofRem(N, K, R);
   return 0;
}

출력

Sum of natural numbers (up to 14) whose modulo with 4 yields 1 is 28