Giả sử có ba số nguyên a, b và c. Trong một dãy vô hạn, a là số hạng đầu tiên và c là công sai. Cần kiểm tra xem b có xuất hiện trong dãy hay không. Ví dụ a = 1, b = 7 và c = 3, dãy sẽ là 1, 4, 7, 10, … nên 7 có trong dãy, kết quả là "yes".
Để giải quyết, thực hiện hai bước:
Khi c = 0 và a = b thì in "yes", nếu a khác b thì trả về "no"
Khi c > 0, với bất kỳ số nguyên không âm k nào, phương trình b = a + k*c phải thỏa mãn. Do đó (b-a)/c phải là số nguyên không âm.
Ví dụ
#include<iostream> using namespace std; void isBInSequence(int a, int b, int c){ if (a == b) cout << "Yes"; if ((b - a) * c > 0 && (b - a) % c == 0) cout << "Yes"; else cout << "No"; } int main() { int a = 1, b = 7, c = 3; cout << "The answer is: "; isBInSequence(a, b, c); }Kết quả
The answer is: Yes