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