Skip to content

Commit

Permalink
feat: "Ball Upwards"
Browse files Browse the repository at this point in the history
Add "Ball Upwards" kata
  • Loading branch information
marcobiedermann committed Jan 23, 2023
1 parent f3e10a1 commit 365bace
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 0 deletions.
12 changes: 12 additions & 0 deletions kata/6 kyu/ball-upwards/index.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import maxBall from '.';

describe('maxBall', () => {
it('should return the time of the maximum height', () => {
expect.assertions(4);

expect(maxBall(37)).toBe(10);
expect(maxBall(45)).toBe(13);
expect(maxBall(99)).toBe(28);
expect(maxBall(85)).toBe(24);
});
});
8 changes: 8 additions & 0 deletions kata/6 kyu/ball-upwards/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
function maxBall(v0: number): number {
const g = 9.81;
const kmh = 3600 / 1000;

return Math.round((10 * v0) / kmh / g);
}

export default maxBall;
29 changes: 29 additions & 0 deletions kata/6 kyu/ball-upwards/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# [Ball Upwards](https://www.codewars.com/kata/566be96bb3174e155300001b)

You throw a ball vertically upwards with an initial speed `v (in km per hour)`. The height `h` of the ball at each time `t`
is given by `h = v*t - 0.5*g*t*t` where `g` is Earth's gravity `(g ~ 9.81 m/s**2)`. A device is recording at every **tenth of second** the height of the ball.
For example with `v = 15 km/h` the device gets something of the following form:
`(0, 0.0), (1, 0.367...), (2, 0.637...), (3, 0.808...), (4, 0.881..) ...`
where the first number is the time in tenth of second and the second number the height in meter.

#### Task

Write a function `max_ball` with parameter `v (in km per hour)` that returns the `time in tenth of second`
of the maximum height recorded by the device.

#### Examples:

`max_ball(15) should return 4`

`max_ball(25) should return 7`

#### Notes

- Remember to convert the velocity from km/h to m/s or from m/s in km/h when necessary.
- The maximum height recorded by the device is not necessarily the maximum height reached by the ball.

---

## Tags

- Fundamentals

0 comments on commit 365bace

Please sign in to comment.