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

Tính tổng của các số tự nhiên (đến N) có môđun với K mang lại R trong C ++


Trong bài toán này, chúng ta có ba số N, K và R. Nhiệm vụ của chúng ta là tạo một chương trình để tìm Tổng của các số tự nhiên (đến N) có môđun với K năng suất R.

Chúng ta sẽ cộng tất cả các số nhỏ hơn N thỏa mãn điều kiện sau, i% K ==R.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào

N = 14, K = 4, R = 1

Đầu ra

28

Giải thích - Tất cả các số nhỏ hơn N mà cho 1 là số dư khi chia cho 4 là 1, 5, 9, 13.

Để giải quyết vấn đề này, chúng ta sẽ lặp từ R đến N và tăng giá trị của K. Vì vậy, chúng ta sẽ nhận được số chẵn thỏa mãn điều kiện đã cho. Và cộng chúng thành tổng.

Ở đây, chúng ta có thể đã sử dụng với vòng lặp bình thường, tức là với 1 là một khoảng thời gian. Nhưng chúng tôi đã sử dụng điều này trước khi nó sẽ tiêu tốn ít thời gian hơn.

Ví dụ

Chương trình minh họa giải pháp,

#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;
}

Đầu ra

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