检查数字是否可以表示为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
热门推荐
2 红丝绒戚风蛋糕
3 夹心小甜点
4 南瓜甜点
6 粘米粉蒸蛋糕
7 酸奶华夫饼
9 红柚鸡蛋糕
10 葡萄干蛋糕
11 紫薯蛋糕卷
13 纸杯裱花小蛋糕
14 果酱奶酪蛋糕
15 日式樱花蔓越莓大福
16 草莓蛋糕卷
17 卡仕达长崎杯子蛋糕