# Daily Challenge #40 - Counting Sheep

### dev.to staff ・1 min read

Daily Challenge (121 Part Series)

1) Daily Challenge #1 - String Peeler
2) Daily Challenge #2 - String Diamond
3 ... 119
3) Daily Challenge #3 - Vowel Counter
4) Daily Challenge #4 - Checkbook Balancing
5) Daily Challenge #5 - Ten Minute Walk
6) Daily Challenge #6 - Grandma and her friends
7) Daily Challenge #7 - Factorial Decomposition
8) Daily Challenge #8 - Scrabble Word Calculator
9) Daily Challenge #9 - What's Your Number?
10) Daily Challenge #10 - Calculator
11) Daily Challenge #11 - Cubic Numbers
12) Daily Challenge #12 - Next Larger Number
13) Daily Challenge #13 - Twice Linear
14) Daily Challenge #14 - Square into Squares
15) Daily Challenge #15 - Stop gninnipS My sdroW!
16) Daily Challenge #16 - Number of People on the Bus
17) Daily Challenge #17 - Double Trouble
18) Daily Challenge #18 - Triple Trouble
19) Daily Challenge #19 - Turn numbers into words
20) Daily Challenge Post #20 - Number Check
21) Daily Challenge #21 - Human Readable Time
22) Daily Challenge #22 - Simple Pig Latin
23) Daily Challenge #23 - Morse Code Decoder
24) Daily Challenge #24 - Shortest Step
25) Daily Challenge #25 - Double Cola
26) Daily Challenge #26 - Ranking Position
27) Daily Challenge #27 - Unlucky Days
28) Daily Challenge #28 - Kill the Monster!
29) Daily Challenge #29 - Xs and Os
30) Daily Challenge #30 - What is the price?
31) Daily Challenge #31 - Count IPv4 Addresses
32) Daily Challenge #32 - Hide Phone Numbers
33) Daily Challenge #33 - Did you mean...?
34) Daily Challenge #34 - WeIrD StRiNg CaSe
35) Daily Challenge #35 - Find the Outlier
36) Daily Challenge #36 - Let's go for a run!
37) Daily Challenge #37 - Name Swap
38) Daily Challenge #38 - Middle Name
39) Daily Challenge #39 - Virus
40) Daily Challenge #40 - Counting Sheep
41) Daily Challenge #41 - Greed is Good
42) Daily Challenge #42 - Caesar Cipher
43) Daily Challenge #43 - Boardgame Fight Resolver
44) Daily Challenge #44 - Mexican Wave
45) Daily Challenge #45 - Change Machine
46) Daily Challenge #46 - ???
47) Daily Challenge #47 - Alphabets
48) Daily Challenge #48 - Facebook Likes
49) Daily Challenge #49 - Dollars and Cents
50) Daily Challenge #50 - Number Neighbor
51) Daily Challenge #51 - Valid Curly Braces
52) Daily Challenge #52 - Building a Pyramid
53) Daily Challenge #53 - Faro Shuffle
54) Daily Challenge #54 - What century is it?
55) Daily Challenge #55 - Building a Pile of Cubes
56) Daily Challenge #56 - Coffee Shop
57) Daily Challenge #57 - BMI Calculator
58) Daily Challenge #58 - Smelting Iron Ingots
59) Daily Challenge #59 - Snail Sort
60) Daily Challenge #60 - Find the Missing Letter
61) Daily Challenge #61 - Evolution Rate
62) Daily Challenge #62 - Josephus Survivor
63) Daily Challenge #63- Two Sum
64) Daily Challenge #64- Drying Potatoes
65) Daily Challenge #65- A Disguised Sequence
66) Daily Challenge #66- Friend List
67) Daily Challenge #67- Phone Directory
68) Daily Challenge #68 - Grade Book
69) Daily Challenge #69 - Going to the Cinema
70) Daily Challenge #70 - Pole Vault Competition Results
71) Daily Challenge #71 - See you next Happy Year
72) Daily Challenge #72 - Matrix Shift
73) Daily Challenge #73 - ATM Heist
74) Daily Challenge #74 - Free Pizza
75) Daily Challenge #75 - Set Alarm
76) Daily Challenge #76 - Bingo! (or not...)
77) Daily Challenge #77 - Bird Mountain
78) Daily Challenge #78 - Number of Proper Fractions with Denominator d
79) Daily Challenge #79 - Connect Four
80) Daily Challenge #80 - Longest Vowel Change
81) Daily Challenge #81 - Even or Odd
82) Daily Challenge #82 - English Beggars
83) Daily Challenge #83 - Deodorant Evaporator
84) Daily Challenge #84 - Third Angle of a Triangle
85) Daily Challenge #85 - Unwanted Dollars
86) Daily Challenge #86 - Wouldn't, not Would.
87) Daily Challenge #87 - Pony Express
88) Daily Challenge #88 - Recursive Ninjas
89) Daily Challenge #89 - Extract domain name from URL
90) Daily Challenge #90 - One Step at a Time
91) Daily Challenge #91 - Bananas
92) Daily Challenge #92 - Boggle Board
93) Daily Challenge #93 - Range Extraction
94) Daily Challenge #94 - Last Digit
95) Daily Challenge #95 - CamelCase Method
96) Daily Challenge #96 - Easter Egg Crush Test
97) Daily Challenge #97 - Greed is Good
98) Daily Challenge #98 - Make a Spiral
99) Daily Challenge #99 - Balance the Scales
100) Daily Challenge #100 - Round Up
101) Daily Challenge #101 - Parentheses Generator
102) Daily Challenge #102 - Pentabonacci
103) Daily Challenge #103 - Simple Symbols
104) Daily Challenge #104 - Matrixify
105) Daily Challenge #105 - High-Sum Matrix Drop
106) Daily Challenge #106 - Average Fuel Consumption
107) Daily Challenge #107 - Escape the Mines
108) Daily Challenge #108 - Find the Counterfeit Coin
109) Daily Challenge #109 - Decorate with Wallpaper
110) Daily Challenge #110 - Love VS. Friendship
111) Daily Challenge #111 - 99 Bottles of Beer
112) Daily Challenge #112 - Functions of Integers on the Cartesian Plane
113) Daily Challenge #113 - Iterative Rotation Cipher
114) Daily Challenge #114 - Speed Control
115) Daily Challenge #115 - Look and Say Sequence
116) Daily Challenge #116 - Shortest Knight Path
117) Daily Challenge #117 - MinMinMax
118) Daily Challenge #118 - Reversing a Process
119) Daily Challenge #119 - Adding Big Numbers
120) Daily Challenge #120 - Growth of a Population
121) Daily Challenge #121 - Who has the most money?

You're having trouble falling asleep, so your challenge today is to count sheep!

Given a non-negative integer, 3 for example, return a string with a murmur: "1 sheep...2 sheep...3 sheep...". Input will always be valid, i.e. no negative integers.

Happy Coding!

*This challenge comes from joshra on CodeWars. Thank you to CodeWars, who has licensed redistribution of this challenge under the 2-Clause BSD License!*

*Want to propose a challenge for a future post? Email yo+challenge@dev.to with your suggestions!*

Classic DEV Post from Jul 26

This was quite a simple one so I decided to spice it up with emoji! Also, next-gen sleep simulation at the end.

Code:

Output:

Did anybody talk about oneliner?

And the results

This is sweet. Something similar but with more

`Array`

and less`map`

:or

PHP

PHP

I counted bugs because that is more reflective of what I would do while working :)

I also added a message for if you are able to go to sleep immediately

JavaScript

JavaScript

ruby <3

Ruby has pipes now?

Yes! pipeline operator added.

Feature #15799: pipeline operator - Ruby master - Ruby Issue Tracking System

And Numbered parameters.

Feature #4475: default variable name for parameter - Ruby master - Ruby Issue Tracking System

It's not released yet. You can try those new syntax by

`rbenv install 2.7.0-dev`

.Sadly, pipeline operator is reverted.

github.com/ruby/ruby/commit/2ed68d...

My solution in js

Rust solution: [Playground](

⬆️elixir

That was fast... might as well do it in another language too.

⬇️javascript

Most of the solutions are not taking input

0

into consideration.

Like for 0 the output should be

"0"

not an empty string.

Edit that can be made to question statement.

As according to question input can be a non-negative number. For rest of the inputs it should be like for 3,

"0 1 sheep...2 sheep... 3sheep..."

Pattern is print the numbers upto n starting with 0 and concate the string " sheep..." with them.

I kind of understand your suggestion (as zero is not positive nor negative, and the question statement would be more accurate if it was "Given a positive integer"), but I don't see why you suggest that base case.

Why for zero the output should be "0" and not "0 sheep..." or an empty string?

I made some assumptions for the pattern.

As i think the pattern is to print the numbers upto inputted number and concatinating string " sheep...", so as the total number of string " sheep..." in output string is equal to inputted number. that is no string for 0 but the "0" represent the number.

Oh, alright.

Scheme

A demo can be seen in Repl.it. The function would be called

`(countSheep 4)`

and the result would be:My solution in ruby

What about a range?

Oh, yeah.

Forgot about range.

Nice!

Trusty repl.it

Had no idea you could embed that,

how do you do that if you don't mind my asking?

Basically, you should add your '@username/replit_name' inside

See dev.to/p/editor_guide for more options.

Python :

In one line :

Some recursivity in JavaScript

or something like that.

Perl solution, the integer is specified as an argument to the program:

## PHP

Welcome to my fantasy world. :D

Output:

Erlang:

[gist.github.com/devparkk/334ee3d1f...]