Merge pull request #1452 from shellhub/ProjectEuler
Added Project Euler
This commit is contained in:
commit
70217934a2
@ -200,6 +200,10 @@
|
|||||||
* [TowerOfHanoi](https://github.com/TheAlgorithms/Java/blob/master/Others/TowerOfHanoi.java)
|
* [TowerOfHanoi](https://github.com/TheAlgorithms/Java/blob/master/Others/TowerOfHanoi.java)
|
||||||
* [WorstFit](https://github.com/TheAlgorithms/Java/blob/master/Others/WorstFit.java)
|
* [WorstFit](https://github.com/TheAlgorithms/Java/blob/master/Others/WorstFit.java)
|
||||||
|
|
||||||
|
## ProjectEuler
|
||||||
|
* [Problem01](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem01.java)
|
||||||
|
* [Problem02](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem02.java)
|
||||||
|
|
||||||
## Searches
|
## Searches
|
||||||
* [BinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/BinarySearch.java)
|
* [BinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/BinarySearch.java)
|
||||||
* [InterpolationSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/InterpolationSearch.java)
|
* [InterpolationSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/InterpolationSearch.java)
|
||||||
|
51
ProjectEuler/Problem01.java
Normal file
51
ProjectEuler/Problem01.java
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
package ProjectEuler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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>
|
||||||
|
* Find the sum of all the multiples of 3 or 5 below 1000.
|
||||||
|
* <p>
|
||||||
|
* Link: https://projecteuler.net/problem=1
|
||||||
|
*/
|
||||||
|
public class Problem01 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int[][] testNumber = {
|
||||||
|
{3, 0},
|
||||||
|
{4, 3},
|
||||||
|
{10, 23},
|
||||||
|
{1000, 233168},
|
||||||
|
{-1, 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
for (int[] ints : testNumber) {
|
||||||
|
assert solution1(ints[0]) == ints[1];
|
||||||
|
assert solution2(ints[0]) == ints[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int solution1(int n) {
|
||||||
|
int sum = 0;
|
||||||
|
for (int i = 3; i < n; ++i) {
|
||||||
|
if (i % 3 == 0 || i % 5 == 0) {
|
||||||
|
sum += i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int solution2(int n) {
|
||||||
|
int sum = 0;
|
||||||
|
|
||||||
|
int terms = (n - 1) / 3;
|
||||||
|
sum += terms * (6 + (terms - 1) * 3) / 2;
|
||||||
|
|
||||||
|
terms = (n - 1) / 5;
|
||||||
|
sum += terms * (10 + (terms - 1) * 5) / 2;
|
||||||
|
|
||||||
|
terms = (n - 1) / 15;
|
||||||
|
sum -= terms * (30 + (terms - 1) * 15) / 2;
|
||||||
|
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
}
|
43
ProjectEuler/Problem02.java
Normal file
43
ProjectEuler/Problem02.java
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
package ProjectEuler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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:
|
||||||
|
* <p>
|
||||||
|
* 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
|
||||||
|
* <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>
|
||||||
|
* Link: https://projecteuler.net/problem=2
|
||||||
|
*/
|
||||||
|
public class Problem02 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int[][] testNumbers = {
|
||||||
|
{10, 10}, /* 2 + 8 == 10 */
|
||||||
|
{15, 10}, /* 2 + 8 == 10 */
|
||||||
|
{2, 2},
|
||||||
|
{1, 0},
|
||||||
|
{89, 44} /* 2 + 8 + 34 == 44 */
|
||||||
|
};
|
||||||
|
|
||||||
|
for (int[] ints : testNumbers) {
|
||||||
|
assert solution1(ints[0]) == ints[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int solution1(int n) {
|
||||||
|
int sum = 0;
|
||||||
|
int first = 1;
|
||||||
|
int second = 2;
|
||||||
|
while (second <= n) {
|
||||||
|
if (second % 2 == 0) {
|
||||||
|
sum += second;
|
||||||
|
}
|
||||||
|
int temp = first + second;
|
||||||
|
first = second;
|
||||||
|
second = temp;
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user