检查数字是否可以表示为C ++中连续数字的总和

在这里,我们将查看一个数字是否可以表示为两个或多个连续数字的总和。假设数字为12。可以表示为3 + 4 + 5。

有一种直接且最简单的方法可以解决此问题。如果数字是2的幂,则不能将其表示为某些连续数字的总和。我们必须牢记两个事实。

  • 任何两个连续的数字之和为奇数,则其中一个为奇数,另一个为偶数。

  • 第二个事实是2 n = 2 (n-1) + 2 (n-1)

示例

#include <iostream>

using namespace std;

bool isSumofconsecutiveNumbers(int n) {

   if((n & (n-1)) && n){

      return true;

   } else {

      return false;

   }

}

int main() {

   int num = 36;

   if(isSumofconsecutiveNumbers(num)){

      cout << "Can be represented";

   } else {

      cout << "Cannot be represented";

   }

}

输出结果

Can be represented

以上是 检查数字是否可以表示为C ++中连续数字的总和 的全部内容, 来源链接: utcz.com/z/351457.html

回到顶部