File tree Expand file tree Collapse file tree 9 files changed +807
-0
lines changed
exercises/practice/pop-count Expand file tree Collapse file tree 9 files changed +807
-0
lines changed Original file line number Diff line number Diff line change 1164
1164
" loops" ,
1165
1165
" variables"
1166
1166
]
1167
+ },
1168
+ {
1169
+ "slug" : " pop-count" ,
1170
+ "name" : " Pop Count" ,
1171
+ "uuid" : " 6846adfc-3c98-42be-8fe1-ad3119f95de1" ,
1172
+ "practices" : [],
1173
+ "prerequisites" : [],
1174
+ "difficulty" : 3
1167
1175
}
1168
1176
]
1169
1177
},
Original file line number Diff line number Diff line change
1
+ # Instructions
2
+
3
+ Your task is to count the number of 1 bits in the binary representation of a number.
4
+
5
+ ## Restrictions
6
+
7
+ Keep your hands off that bit-count functionality provided by your standard library!
8
+ Solve this one yourself using other basic tools instead.
Original file line number Diff line number Diff line change
1
+ # Introduction
2
+
3
+ Your friend Eliud inherited a farm from her grandma Tigist.
4
+ Her granny was an inventor and had a tendency to build things in an overly complicated manner.
5
+ The chicken coop has a digital display showing an encoded number representing the positions of all eggs that could be picked up.
6
+
7
+ Eliud is asking you to write a program that shows the actual number of eggs in the coop.
8
+
9
+ The position information encoding is calculated as follows:
10
+
11
+ 1 . Scan the potential egg-laying spots and mark down a ` 1 ` for an existing egg or a ` 0 ` for an empty spot.
12
+ 2 . Convert the number from binary to decimal.
13
+ 3 . Show the result on the display.
14
+
15
+ Example 1:
16
+
17
+ ``` text
18
+ Chicken Coop:
19
+ _ _ _ _ _ _ _
20
+ |E| |E|E| | |E|
21
+
22
+ Resulting Binary:
23
+ 1 0 1 1 0 0 1
24
+
25
+ Decimal number on the display:
26
+ 89
27
+
28
+ Actual eggs in the coop:
29
+ 4
30
+ ```
31
+
32
+ Example 2:
33
+
34
+ ``` text
35
+ Chicken Coop:
36
+ _ _ _ _ _ _ _ _
37
+ | | | |E| | | | |
38
+
39
+ Resulting Binary:
40
+ 0 0 0 1 0 0 0 0
41
+
42
+ Decimal number on the display:
43
+ 16
44
+
45
+ Actual eggs in the coop:
46
+ 1
47
+ ```
Original file line number Diff line number Diff line change
1
+ {
2
+ "authors" : [
3
+ " glennj"
4
+ ],
5
+ "files" : {
6
+ "solution" : [
7
+ " pop_count.sh"
8
+ ],
9
+ "test" : [
10
+ " pop_count.bats"
11
+ ],
12
+ "example" : [
13
+ " .meta/example.sh"
14
+ ]
15
+ },
16
+ "blurb" : " Count the 1 bits in a number" ,
17
+ "source" : " Christian Willner, Eric Willigers" ,
18
+ "source_url" : " https://forum.exercism.org/t/new-exercise-suggestion-pop-count/7632/5"
19
+ }
Original file line number Diff line number Diff line change
1
+ #! /usr/bin/env bash
2
+
3
+ eggCount () {
4
+ local -i number=$1 count=0
5
+ while (( number > 0 )) ; do
6
+ (( count += number & 1 ))
7
+ (( number >>= 1 ))
8
+ done
9
+ echo " $count "
10
+ }
11
+
12
+ eggCount " $1 "
Original file line number Diff line number Diff line change
1
+ # This is an auto-generated file.
2
+ #
3
+ # Regenerating this file via `configlet sync` will:
4
+ # - Recreate every `description` key/value pair
5
+ # - Recreate every `reimplements` key/value pair, where they exist in problem-specifications
6
+ # - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion)
7
+ # - Preserve any other key/value pair
8
+ #
9
+ # As user-added comments (using the # character) will be removed when this file
10
+ # is regenerated, comments can be added via a `comment` key.
11
+
12
+ [559e789d-07d1-4422-9004-3b699f83bca3 ]
13
+ description = " 0 eggs"
14
+
15
+ [97223282-f71e-490c-92f0-b3ec9e275aba ]
16
+ description = " 1 egg"
17
+
18
+ [1f8fd18f-26e9-4144-9a0e-57cdfc4f4ff5 ]
19
+ description = " 4 eggs"
20
+
21
+ [0c18be92-a498-4ef2-bcbb-28ac4b06cb81 ]
22
+ description = " 13 eggs"
You can’t perform that action at this time.
0 commit comments