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