使用 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

更新于: 2019年10月30日

479 次浏览

开启你的 职业生涯

完成课程获得认证

开始学习
广告