Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/easy/3or5/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
var sum = 0
for (var i = 1; i < 1000; i++){
if (i % 3 === 0 || i % 5 === 0){
sum += i;
}
}

console.log("sum of all multiples of 3 or 5 below 1000 is : " + "" + sum )
8 changes: 8 additions & 0 deletions src/easy/digitCount/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const Loza = ["3","4","5","6","8","9","0","10"]

function countDigits(Loza){
const numberAsString = Loza.toString();
return numberAsString.length
}

console.log(countDigits(Loza))
13 changes: 13 additions & 0 deletions src/easy/factorial/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
function factorial(n) {
if (n === 0 || n === 1) {
return 1
} else {
return n * factorial(n - 1)
}
}

//`5! = 5 x 4 x 3 x 2 x 1 = 120`
const number = 5;
const result = factorial(number)
console.log(`${number}! = ${result}`)

24 changes: 24 additions & 0 deletions src/easy/makeSentence/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
function capitalizeAndAddPeriod(sentence) {
// Remove trailing whitespace
sentence = sentence.trim();

const lastChar = sentence.charAt(sentence.length - 1);
const punctuationRegex = /[.!?]/;


if (!punctuationRegex.test(lastChar)) {
sentence += '.';
}

// Capitalize the first letter
sentence = sentence.charAt(0).toUpperCase() + sentence.slice(1);

return sentence;
}


//const inputSentence = "Given a sentence, capitalise the first letter and add a full stop to the end. However, if the sentence already ends with some form of puncutation, leave it as is.";
const inputSentence = "Loza is pretty"
const outputSentence = capitalizeAndAddPeriod(inputSentence);
console.log(outputSentence);

7 changes: 7 additions & 0 deletions src/easy/miles/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
function kilometersToMiles(kilometers) {
const miles = kilometers / 1.6 // 1.6 kilometers in a mile
return Math.round(miles)
}
const kilometers = 25
const miles = kilometersToMiles(kilometers)
console.log(`${kilometers} kilometers is approximately ${miles} miles.`)
11 changes: 11 additions & 0 deletions src/easy/milesTravelled/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
function calculateDistance(minutes, speed) {
const hours = minutes / 60
const distance = speed * hours
const roundedDistance = Math.round(distance)
return roundedDistance
}
const travelDurationInMinutes = 100
const speedInMph = 50
const distance = calculateDistance(travelDurationInMinutes, speedInMph)
console.log(`Distance traveled: ${distance} miles.`)

11 changes: 11 additions & 0 deletions src/easy/multiples/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
function listMultiples(number, length) {
const multiples = []
for (let i = 1; multiples.length < length; i++) {
multiples.push(number * i)
}
return multiples
}
console.log(listMultiples(7, 5)) // ➞ [7, 14, 21, 28, 35]
console.log(listMultiples(12, 10)) // ➞ [12, 24, 36, 48, 60, 72, 84, 96, 108, 120]
console.log(listMultiples(17, 6)) // ➞ [17, 34, 51, 68, 85, 102]

10 changes: 10 additions & 0 deletions src/easy/random/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
function getRandomNumber(min, max) {
const randomFraction = Math.random()
const randomInRange = min + randomFraction * (max - min)
return Math.round(randomInRange)
}
const min = 10
const max = 20
const randomValue = getRandomNumber(min, max)
console.log(randomValue)

12 changes: 12 additions & 0 deletions src/easy/range/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
function findDifference(numbers) {
if (numbers.length === 0) {
return 0
}
const max = Math.max(...numbers)
const min = Math.min(...numbers)
return max - min
}
const numbers = [12, 5, 8, 24, 15, 3]
const difference = findDifference(numbers)
console.log(difference) // 21

17 changes: 17 additions & 0 deletions src/easy/repeat/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
function doubleCharacters(inputString) {
let doubledString = ""
for (let i = 0; i < inputString.length; i++) {
doubledString += inputString[i] + inputString[i]
}
return doubledString
}
const input1 = "String"
const result1 = doubleCharacters(input1)
console.log(result1)
const input2 = "Hello World!"
const result2 = doubleCharacters(input2)
console.log(result2)
const input3 = "1234!_ "
const result3 = doubleCharacters(input3)
console.log(result3)

7 changes: 7 additions & 0 deletions src/easy/reverse/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
function reverseString(inputString) {
return inputString.split('').reverse().join('')
}
console.log(reverseString("String"))
console.log(reverseString("123"))
console.log(reverseString("#!@"))

15 changes: 6 additions & 9 deletions src/easy/scores/solution.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
const ratingsAdjuster = (ratings, minThreshold, maxThreshold) => {
const adjustedRatings = [...ratings];

const adjustedRatings = [...ratings]
for( let i = 0; i < adjustedRatings.length; i++ ) {
if ( ratings[i] < minThreshold) {
adjustedRatings[i] = minThreshold
} else if (ratings[i] > maxThreshold ) {
adjustedRatings[i] = maxThreshold
}
}
return adjustedRatings;
return adjustedRatings
}

const ratings = [1,3,5,7,9];
const min = 3;
const max = 7;

console.log(ratingsAdjuster(ratings, min, max));
const ratings = [1,3,5,7,9]
const min = 3
const max = 7
console.log(ratingsAdjuster(ratings, min, max)) // 3 , 3 5 , 7 ,7
7 changes: 7 additions & 0 deletions src/easy/secondsInHours/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
function hoursToSeconds(hours) {
return hours * 3600// 1 hour = 3600 seconds
}
const hours = 15
const seconds = hoursToSeconds(hours)
console.log(seconds) // Output: 18000 seconds (15 hours * 3600 seconds/hour)

10 changes: 10 additions & 0 deletions src/easy/sum/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
function sumNumbersFrom1To100() {
let sum = 0
for (let i = 1; i <= 100; i++) {
sum += i
}
return sum
}
const result = sumNumbersFrom1To100()
console.log(result)

18 changes: 18 additions & 0 deletions src/easy/sumOfCubes/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
function sumOfCubes(numbers) {
let sum = 0

for (let i = 0; i < numbers.length; i++) {
const cube = Math.pow(numbers[i], 3)
sum += cube
}
return sum
}
const list1 = [1, 5, 9]
const list2 = [3, 4, 5]
const list3 = [2]
const list4 = []
console.log(sumOfCubes(list1)) // Output: 855
console.log(sumOfCubes(list2)) // Output: 216
console.log(sumOfCubes(list3)) // Output: 8
console.log(sumOfCubes(list4))// Output: 0

23 changes: 23 additions & 0 deletions src/easy/timesTables/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
function generateMultiplicationTables() {
const table = []

for (let i = 1; i <= 12; i++) {
const row = []

for (let j = 1; j <= 12; j++) {
row.push(i * j)
}
table.push(row)
}
return table
}
function displayMultiplicationTable(table) {
for (let i = 1; i <= 12; i++) {
const row = table[i - 1].join(' | ')
console.log(`\n${i} times table`)
console.log(`| ${row} |`)
}
}
const multiplicationTable = generateMultiplicationTables()
displayMultiplicationTable(multiplicationTable)

74 changes: 74 additions & 0 deletions src/hard/castles/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
const totalCastles = 5
const roomsPerCastle = 7
const totalRooms = totalCastles * roomsPerCastle
const maxLives = 9
const treasures = []
const creatures = []
const treasurePoints = [10, 20, 30, 40, 50]
const bluffSuccessRate = 0.3

for (let i = 0; i < totalRooms; i++) {
treasures.push(treasurePoints[Math.floor(Math.random() * treasurePoints.length)])
creatures.push(Math.random())
}

let playerLives = maxLives
let playerScore = 0
let currentRoom = 0

function bluff() {
return Math.random() < bluffSuccessRate
}

function fight(creature) {
const fightSuccessRate = 1 - creature
return Math.random() < fightSuccessRate
}

const readline = require('readline')

const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})

function playGame() {
if (currentRoom < totalRooms && playerLives > 0) {
console.log(`You are in room ${currentRoom + 1} of ${totalRooms}.`)
console.log(`You have ${playerLives} lives and ${playerScore} points.`)

rl.question("Do you want to (b)luff or (f)ight? ", (decision) => {
if (decision.toLowerCase() === "b") {
if (bluff()) {
console.log("Bluff successful! You capture the treasure.")
playerScore += treasures[currentRoom]
} else {
console.log("Bluff failed. The creature attacks!")
playerLives--
}
} else if (decision.toLowerCase() === "f") {
if (fight(creatures[currentRoom])) {
console.log("You defeat the creature and capture the treasure.")
playerScore += treasures[currentRoom]
} else {
console.log("You lost the fight. The creature overpowers you.")
playerLives--
}
} else {
console.log("Invalid input. Please enter 'b' for bluff or 'f' for fight.")
}

currentRoom++
playGame()
})
} else {
rl.close()
if (playerLives === 0) {
console.log("Game over! You have run out of lives.")
} else {
console.log(`Congratulations! You collected ${playerScore} points.`)
}
}
}

playGame()
74 changes: 74 additions & 0 deletions src/hard/disarium/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
const totalCastles = 5
const roomsPerCastle = 7
const totalRooms = totalCastles * roomsPerCastle
const maxLives = 9
const treasures = []
const creatures = []
const treasurePoints = [10, 20, 30, 40, 50]
const bluffSuccessRate = 0.3

for (let i = 0; i < totalRooms; i++) {
treasures.push(treasurePoints[Math.floor(Math.random() * treasurePoints.length)])
creatures.push(Math.random())
}

let playerLives = maxLives
let playerScore = 0
let currentRoom = 0

function bluff() {
return Math.random() < bluffSuccessRate
}

function fight(creature) {
const fightSuccessRate = 1 - creature
return Math.random() < fightSuccessRate
}

const readline = require('readline')

const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})

function playGame() {
if (currentRoom < totalRooms && playerLives > 0) {
console.log(`You are in room ${currentRoom + 1} of ${totalRooms}.`)
console.log(`You have ${playerLives} lives and ${playerScore} points.`)

rl.question("Do you want to (b)luff or (f)ight? ", (decision) => {
if (decision.toLowerCase() === "b") {
if (bluff()) {
console.log("Bluff successful! You capture the treasure.")
playerScore += treasures[currentRoom]
} else {
console.log("Bluff failed. The creature attacks!")
playerLives--
}
} else if (decision.toLowerCase() === "f") {
if (fight(creatures[currentRoom])) {
console.log("You defeat the creature and capture the treasure.")
playerScore += treasures[currentRoom]
} else {
console.log("You lost the fight. The creature overpowers you.")
playerLives--
}
} else {
console.log("Invalid input. Please enter 'b' for bluff or 'f' for fight.")
}

currentRoom++
playGame()
})
} else {
rl.close()
if (playerLives === 0) {
console.log("Game over! You have run out of lives.")
} else {
console.log(`Congratulations! You collected ${playerScore} points.`)
}
}
}

playGame()
Loading