- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Check if a number can be expressed as a sum of consecutive numbers in C++
Here we will see if one number can be represented as sum of two or more consecutive numbers or not. Suppose a number is 12. This can be represented as 3+4+5.
There is a direct and easiest method to solve this problem. If a number is power of 2, then it cannot be expressed as sum of some consecutive numbers. There are two facts that we have to keep in mind.
- Sum of any two consecutive numbers is odd, then one of them will be odd, another one is even.
- Second fact is 2n = 2(n-1) + 2(n-1).
Example
#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"; } }
Output
Can be represented
Advertisements