Sharing answer codes of mine about Programmers Level4. expressions.
Level 4: Expressions of a Number
Problem Statement
Given a natural number N, find the number of ways to represent the number N as a sum of consecutive natural numbers. For example,
Input:
N = 15
Output:
Answer = 4,
since possible ways to represent the number N are \((1+2+3+4+5), (4+5+6), (7+8), (15)\).
Answer code (in C++)
#include<iostream>
using namespace std;
int expressions(int testCase)
{
int answer = 0;
// Loop until half of the testCase, it is unnecessary after then
for (int i=1; i<=testCase/2; ++i){
int sum = 0;
for (int j=i; j<=testCase; ++j){
sum += j;
// If sum is equal to the testCase
if (sum == testCase){
answer += 1;
break;
}
// Break if sum is bigger than the testCase
else if (sum > testCase){
break;
}
}
}
// Plus one to include the testCase itself
return ++answer;
}
int main()
{
int testNo = 15;
int testAnswer = expressions(testNo);
cout<<testAnswer;
}