检查数字能否表示为 C++ 中连续数字的和


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

解决这个问题有一个直接且最简单的方法。如果一个数字是 2 的幂,则它不能表示为一些连续数字的和。我们需要记住两个事实。

  • 任何两个连续数字的和都是奇数,其中一个为奇数,另一个为偶数。
  • 第二个事实是 2n = 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

更新于:2019年9月27日

375 次浏览

启动你的 职业生涯

完成课程获得认证

开始学习
广告