使用 C++ 判断一个数是否属于给定首项和公差的等差数列。
假设我们已知等差数列的首项 a 和公差 d。我们需要检查给定的数字 n 是否是该等差数列的一部分。如果首项 a = 1,公差 d = 3,并且需要检查的项 x = 7。答案是肯定的。
为了解决这个问题,我们将遵循以下步骤:
- 如果 d 为 0,并且 a 等于 x,则返回 true,否则返回 false。
- 否则,如果 d 不为 0,则如果 x 属于序列 x = a + n * d,其中 n 是一个非负整数,当且仅当 (x - a)/d 是一个非负整数。
示例
#include <iostream> using namespace std; bool isInAP(int a, int d, int x) { if (d == 0) return (x == a); return ((x - a) % d == 0 && (x - a) / d >= 0); } int main() { int a = 1, x = 7, d = 3; if (isInAP(a, d, x)) cout << "The value " << x << " is present in the AP"; else cout << "The value " << x << "is not present in the AP"; }
输出
The value 7 is present in the AP
广告