feat: add new Josephus file in Recursive directory#1728
feat: add new Josephus file in Recursive directory#1728Lonercode wants to merge 1 commit intoTheAlgorithms:masterfrom
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1728 +/- ##
==========================================
+ Coverage 84.76% 84.78% +0.01%
==========================================
Files 378 379 +1
Lines 19742 19767 +25
Branches 2955 2961 +6
==========================================
+ Hits 16735 16760 +25
Misses 3007 3007 ☔ View full report in Codecov by Sentry. |
| return collection[0] | ||
| } else { | ||
| step = (step - 1) % collection.length | ||
| collection.splice(step, 1) |
There was a problem hiding this comment.
This is
This algorithm also doesn't really benefit from recursion. It would be clearer as a simple while loop:
while (collection.length > 1) { /* kill someone */ }
return collection[0]| const collection1 = [1] | ||
| const collection2 = [] | ||
|
|
||
| it('should return 4 for step size of 3', () => { |
There was a problem hiding this comment.
Repetitive tests of the form "should return X for Y" should use it.each
|
Thanks for the review @appgurueu Alright. In that case would there be a need to modify it for the recursive directory. |
Describe your change:
As part of my contribution to hacktoberfest 2024, I have added a file recursively implementing the Josephus algorithm and its associated test to the Recursive directory. The Josephus algorithm is a counting-out game that returns the last number after removing every kth number in a circle. More on it can be found here
Checklist:
Example:
UserProfile.jsis allowed butuserprofile.js,Userprofile.js,user-Profile.js,userProfile.jsare notFixes: #{$ISSUE_NO}.