Merge pull request 'added euler problem 2' (#2) from euler_problem_2 into main

Reviewed-on: https://baobabfruit.ddns.net/gitea/delano/project-euler/pulls/2
This commit is contained in:
delano zuurman 2025-02-13 12:02:27 +00:00
commit d628bc9c78
6 changed files with 63 additions and 1 deletions

View File

@ -5,4 +5,11 @@ Several project euler problems solved in C++
# Euler problem 1 :
<p>If we list all the natural numbers below $10$ that are multiples of $3$ or $5$, we get $3, 5, 6$ and $9$. The sum of these multiples is $23$.</p>
<p>Find the sum of all the multiples of $3$ or $5$ below $1000$.</p>
<p>Find the sum of all the multiples of $3$ or $5$ below $1000$.</p>
# Euler problem 2 :
<p>Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with $1$ and $2$, the first $10$ terms will be:
$$1, 2, 3, 5, 8, 13, 21, 34, 55, 89, \dots$$</p>
<p>By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.</p>

View File

@ -4,12 +4,14 @@
#include <iostream>
#include <cassert>
#include "euler_p1.h"
#include "euler_p2.h"
void unit_tests() {
assert(euler1(10) == 23);
assert(euler2(10) == 10);
std::cout << "All tests passed! continues main." << std::endl;
}
@ -19,10 +21,16 @@ int euler_p1() {
return res;
}
int euler_p2() {
int res = euler2(4000000);
return res;
}
int main()
{
unit_tests();
std::cout << "the result for problem 1 = " << euler_p1() << std::endl;
std::cout << "the result for problem 2 = " << euler_p2() << std::endl;
}

View File

@ -129,9 +129,11 @@
<ItemGroup>
<ClCompile Include="euler.cpp" />
<ClCompile Include="euler_p1.cpp" />
<ClCompile Include="euler_p2.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="euler_p1.h" />
<ClInclude Include="euler_p2.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

View File

@ -21,10 +21,16 @@
<ClCompile Include="euler_p1.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="euler_p2.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="euler_p1.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="euler_p2.h">
<Filter>Source Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

26
euler/euler/euler_p2.cpp Normal file
View File

@ -0,0 +1,26 @@
#include "euler_p2.h"
/*
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
*/
int euler2(int limit) {
int current = 1;
int previous = 1;
int temp = 0;
int result = 0;
while (temp < limit) {
temp = current + previous;
previous = current;
current = temp;
if (temp % 2 == 0)
{
result += temp;
}
}
return result;
}

13
euler/euler/euler_p2.h Normal file
View File

@ -0,0 +1,13 @@
#pragma once
#pragma once
/**
* @brief Solves Euler problem 2: Even Fibonacci Numbers
*
* This function calculates the sum of all the even numbers in the fibonacchi sequence with the upper limit as close to given limit
*
* @param limit The upper limit for the range to consider (should be positive).
* @return The sum of every even fibbonachi number lower then the limit.
*
* @note This function only works with positive integer inputs.
*/
int euler2(int limit);