trackler 2.2.0.1 → 2.2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/fixtures/tracks/fake/config.json +4 -3
- data/fixtures/tracks/fruit/config.json +4 -3
- data/lib/trackler/track.rb +2 -2
- data/lib/trackler/version.rb +1 -1
- data/tracks/{java/exercises/allergies/.meta/readme.go.tmpl → c/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/c/exercises/acronym/README.md +47 -0
- data/tracks/c/exercises/all-your-base/README.md +67 -0
- data/tracks/c/exercises/allergies/README.md +69 -0
- data/tracks/c/exercises/anagram/README.md +45 -0
- data/tracks/c/exercises/atbash-cipher/README.md +66 -0
- data/tracks/c/exercises/beer-song/README.md +359 -0
- data/tracks/c/exercises/binary/README.md +67 -0
- data/tracks/c/exercises/binary-search/README.md +73 -0
- data/tracks/c/exercises/bob/README.md +50 -0
- data/tracks/c/exercises/clock/README.md +45 -0
- data/tracks/c/exercises/difference-of-squares/README.md +51 -0
- data/tracks/c/exercises/gigasecond/README.md +43 -0
- data/tracks/c/exercises/grains/README.md +66 -0
- data/tracks/c/exercises/hamming/README.md +74 -0
- data/tracks/c/exercises/hello-world/README.md +53 -0
- data/tracks/c/exercises/isogram/README.md +51 -0
- data/tracks/c/exercises/largest-series-product/README.md +52 -0
- data/tracks/c/exercises/leap/README.md +65 -0
- data/tracks/c/exercises/meetup/README.md +62 -0
- data/tracks/c/exercises/nth-prime/README.md +47 -0
- data/tracks/c/exercises/nucleotide-count/README.md +65 -0
- data/tracks/c/exercises/palindrome-products/README.md +72 -0
- data/tracks/c/exercises/pangram/README.md +47 -0
- data/tracks/c/exercises/pascals-triangle/README.md +53 -0
- data/tracks/c/exercises/perfect-numbers/README.md +56 -0
- data/tracks/c/exercises/phone-number/README.md +66 -0
- data/tracks/c/exercises/raindrops/README.md +56 -0
- data/tracks/c/exercises/react/README.md +51 -0
- data/tracks/c/exercises/rna-transcription/README.md +57 -0
- data/tracks/c/exercises/robot-simulator/README.md +66 -0
- data/tracks/c/exercises/roman-numerals/README.md +81 -0
- data/tracks/c/exercises/scrabble-score/README.md +76 -0
- data/tracks/c/exercises/series/README.md +59 -0
- data/tracks/c/exercises/sieve/README.md +66 -0
- data/tracks/c/exercises/space-age/README.md +56 -0
- data/tracks/c/exercises/sum-of-multiples/README.md +50 -0
- data/tracks/c/exercises/triangle/README.md +58 -0
- data/tracks/c/exercises/word-count/README.md +51 -0
- data/tracks/ceylon/README.md +3 -3
- data/tracks/ceylon/config/exercise-readme-insert.md +1 -0
- data/tracks/{java/exercises/accumulate/.meta/readme.go.tmpl → ceylon/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/ceylon/exercises/anagram/README.md +29 -0
- data/tracks/ceylon/{docs/EXERCISE_README_INSERT.md → exercises/bracket-push/README.md} +12 -0
- data/tracks/ceylon/exercises/hamming/README.md +58 -0
- data/tracks/ceylon/exercises/largest-series-product/README.md +36 -0
- data/tracks/ceylon/exercises/leap/README.md +49 -0
- data/tracks/ceylon/exercises/react/README.md +35 -0
- data/tracks/ceylon/exercises/sieve/README.md +50 -0
- data/tracks/{java/exercises/acronym/.meta/readme.go.tmpl → delphi/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/delphi/exercises/allergies/README.md +58 -0
- data/tracks/delphi/exercises/bank-account/README.md +51 -0
- data/tracks/delphi/exercises/beer-song/README.md +348 -0
- data/tracks/delphi/exercises/binary-search/README.md +62 -0
- data/tracks/delphi/exercises/bob/README.md +39 -0
- data/tracks/delphi/exercises/book-store/README.md +95 -0
- data/tracks/delphi/exercises/bowling/README.md +74 -0
- data/tracks/delphi/exercises/circular-buffer/README.md +71 -0
- data/tracks/delphi/exercises/clock/README.md +34 -0
- data/tracks/delphi/exercises/collatz-conjecture/README.md +54 -0
- data/tracks/delphi/exercises/etl/README.md +72 -0
- data/tracks/delphi/exercises/grains/README.md +55 -0
- data/tracks/delphi/exercises/hamming/README.md +63 -0
- data/tracks/delphi/exercises/hello-world/README.md +42 -0
- data/tracks/delphi/exercises/leap/README.md +54 -0
- data/tracks/delphi/exercises/minesweeper/README.md +51 -0
- data/tracks/delphi/exercises/nucleotide-count/README.md +54 -0
- data/tracks/delphi/exercises/perfect-numbers/README.md +45 -0
- data/tracks/delphi/exercises/phone-number/README.md +55 -0
- data/tracks/delphi/exercises/poker/README.md +33 -0
- data/tracks/delphi/exercises/raindrops/README.md +45 -0
- data/tracks/delphi/exercises/rna-transcription/README.md +46 -0
- data/tracks/delphi/exercises/roman-numerals/README.md +70 -0
- data/tracks/delphi/exercises/saddle-points/README.md +54 -0
- data/tracks/delphi/exercises/triangle/README.md +47 -0
- data/tracks/delphi/exercises/two-fer/README.md +69 -0
- data/tracks/delphi/exercises/wordy/README.md +84 -0
- data/tracks/{java/exercises/all-your-base/.meta/readme.go.tmpl → factor/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/factor/exercises/hello-world/README.md +34 -0
- data/tracks/factor/exercises/isogram/README.md +32 -0
- data/tracks/factor/exercises/leap/README.md +46 -0
- data/tracks/factor/exercises/two-fer/README.md +61 -0
- data/tracks/haskell/config/exercise_readme.go.tmpl +16 -0
- data/tracks/haskell/exercises/accumulate/README.md +89 -0
- data/tracks/haskell/exercises/acronym/README.md +69 -0
- data/tracks/haskell/exercises/all-your-base/README.md +89 -0
- data/tracks/haskell/exercises/allergies/README.md +104 -0
- data/tracks/haskell/exercises/alphametics/README.md +96 -0
- data/tracks/haskell/exercises/anagram/README.md +91 -0
- data/tracks/haskell/exercises/atbash-cipher/README.md +88 -0
- data/tracks/haskell/exercises/bank-account/README.md +102 -0
- data/tracks/haskell/exercises/beer-song/README.md +401 -0
- data/tracks/haskell/exercises/binary/README.md +89 -0
- data/tracks/haskell/exercises/binary-search-tree/README.md +133 -0
- data/tracks/haskell/exercises/bob/README.md +72 -0
- data/tracks/haskell/exercises/bowling/README.md +128 -0
- data/tracks/haskell/exercises/bracket-push/README.md +64 -0
- data/tracks/haskell/exercises/change/README.md +77 -0
- data/tracks/haskell/exercises/clock/README.md +86 -0
- data/tracks/haskell/exercises/connect/README.md +88 -0
- data/tracks/haskell/exercises/crypto-square/README.md +128 -0
- data/tracks/haskell/exercises/custom-set/README.md +94 -0
- data/tracks/haskell/exercises/difference-of-squares/README.md +73 -0
- data/tracks/haskell/exercises/dominoes/README.md +72 -0
- data/tracks/haskell/exercises/etl/README.md +105 -0
- data/tracks/haskell/exercises/food-chain/README.md +145 -0
- data/tracks/haskell/exercises/forth/README.md +98 -0
- data/tracks/haskell/exercises/gigasecond/README.md +65 -0
- data/tracks/haskell/exercises/go-counting/README.md +109 -0
- data/tracks/haskell/exercises/grade-school/README.md +111 -0
- data/tracks/haskell/exercises/grains/README.md +88 -0
- data/tracks/haskell/exercises/hamming/README.md +96 -0
- data/tracks/haskell/exercises/hello-world/README.md +83 -0
- data/tracks/haskell/exercises/hexadecimal/README.md +68 -0
- data/tracks/haskell/exercises/house/README.md +187 -0
- data/tracks/haskell/exercises/kindergarten-garden/README.md +120 -0
- data/tracks/haskell/exercises/largest-series-product/README.md +74 -0
- data/tracks/haskell/exercises/leap/README.md +100 -0
- data/tracks/haskell/exercises/lens-person/README.md +66 -0
- data/tracks/haskell/exercises/linked-list/README.md +104 -0
- data/tracks/haskell/exercises/list-ops/README.md +64 -0
- data/tracks/haskell/exercises/luhn/README.md +125 -0
- data/tracks/haskell/exercises/matrix/README.md +125 -0
- data/tracks/haskell/exercises/meetup/README.md +92 -0
- data/tracks/haskell/exercises/minesweeper/README.md +84 -0
- data/tracks/haskell/exercises/nth-prime/README.md +69 -0
- data/tracks/haskell/exercises/nucleotide-count/README.md +87 -0
- data/tracks/haskell/exercises/ocr-numbers/README.md +139 -0
- data/tracks/haskell/exercises/octal/README.md +115 -0
- data/tracks/haskell/exercises/palindrome-products/README.md +115 -0
- data/tracks/haskell/exercises/pangram/README.md +69 -0
- data/tracks/haskell/exercises/parallel-letter-frequency/README.md +76 -0
- data/tracks/haskell/exercises/pascals-triangle/README.md +75 -0
- data/tracks/haskell/exercises/phone-number/README.md +88 -0
- data/tracks/haskell/exercises/pig-latin/README.md +78 -0
- data/tracks/haskell/exercises/pov/README.md +100 -0
- data/tracks/haskell/exercises/prime-factors/README.md +90 -0
- data/tracks/haskell/exercises/pythagorean-triplet/README.md +78 -0
- data/tracks/haskell/exercises/queen-attack/README.md +105 -0
- data/tracks/haskell/exercises/raindrops/README.md +78 -0
- data/tracks/haskell/exercises/rna-transcription/README.md +79 -0
- data/tracks/haskell/exercises/robot-name/README.md +90 -0
- data/tracks/haskell/exercises/robot-simulator/README.md +105 -0
- data/tracks/haskell/exercises/roman-numerals/README.md +112 -0
- data/tracks/haskell/exercises/run-length-encoding/README.md +84 -0
- data/tracks/haskell/exercises/saddle-points/README.md +87 -0
- data/tracks/haskell/exercises/say/README.md +123 -0
- data/tracks/haskell/exercises/scrabble-score/README.md +98 -0
- data/tracks/haskell/exercises/secret-handshake/README.md +89 -0
- data/tracks/haskell/exercises/series/README.md +106 -0
- data/tracks/haskell/exercises/sgf-parsing/README.md +146 -0
- data/tracks/haskell/exercises/sieve/README.md +88 -0
- data/tracks/haskell/exercises/simple-cipher/README.md +144 -0
- data/tracks/haskell/exercises/simple-linked-list/README.md +101 -0
- data/tracks/haskell/exercises/space-age/README.md +94 -0
- data/tracks/haskell/exercises/spiral-matrix/README.md +84 -0
- data/tracks/haskell/exercises/strain/README.md +94 -0
- data/tracks/haskell/exercises/sublist/README.md +80 -0
- data/tracks/haskell/exercises/sum-of-multiples/README.md +72 -0
- data/tracks/haskell/exercises/triangle/README.md +80 -0
- data/tracks/haskell/exercises/trinary/README.md +96 -0
- data/tracks/haskell/exercises/word-count/README.md +96 -0
- data/tracks/haskell/exercises/wordy/README.md +122 -0
- data/tracks/haskell/exercises/zebra-puzzle/README.md +86 -0
- data/tracks/haskell/exercises/zipper/README.md +85 -0
- data/tracks/java/config/exercise_readme.go.tmpl +16 -0
- data/tracks/java/exercises/accumulate/README.md +0 -1
- data/tracks/java/exercises/acronym/README.md +0 -1
- data/tracks/java/exercises/all-your-base/README.md +0 -1
- data/tracks/java/exercises/allergies/README.md +0 -1
- data/tracks/java/exercises/anagram/README.md +0 -1
- data/tracks/java/exercises/atbash-cipher/README.md +0 -1
- data/tracks/java/exercises/bank-account/README.md +0 -1
- data/tracks/java/exercises/beer-song/README.md +0 -1
- data/tracks/java/exercises/binary/README.md +0 -1
- data/tracks/java/exercises/binary-search/README.md +0 -1
- data/tracks/java/exercises/binary-search-tree/README.md +0 -1
- data/tracks/java/exercises/bob/README.md +0 -1
- data/tracks/java/exercises/book-store/README.md +0 -1
- data/tracks/java/exercises/bowling/README.md +0 -1
- data/tracks/java/exercises/bracket-push/README.md +0 -1
- data/tracks/java/exercises/change/README.md +0 -1
- data/tracks/java/exercises/circular-buffer/README.md +0 -1
- data/tracks/java/exercises/clock/README.md +0 -1
- data/tracks/java/exercises/collatz-conjecture/README.md +0 -1
- data/tracks/java/exercises/complex-numbers/README.md +0 -1
- data/tracks/java/exercises/crypto-square/README.md +0 -1
- data/tracks/java/exercises/custom-set/README.md +0 -1
- data/tracks/java/exercises/diamond/README.md +0 -1
- data/tracks/java/exercises/difference-of-squares/README.md +0 -1
- data/tracks/java/exercises/etl/README.md +0 -1
- data/tracks/java/exercises/flatten-array/README.md +0 -1
- data/tracks/java/exercises/food-chain/README.md +0 -1
- data/tracks/java/exercises/gigasecond/README.md +0 -1
- data/tracks/java/exercises/grade-school/README.md +0 -1
- data/tracks/java/exercises/hamming/README.md +0 -1
- data/tracks/java/exercises/hello-world/README.md +0 -1
- data/tracks/java/exercises/hexadecimal/README.md +0 -1
- data/tracks/java/exercises/isogram/README.md +0 -1
- data/tracks/java/exercises/kindergarten-garden/README.md +0 -1
- data/tracks/java/exercises/largest-series-product/README.md +0 -1
- data/tracks/java/exercises/linked-list/README.md +0 -1
- data/tracks/java/exercises/list-ops/README.md +0 -1
- data/tracks/java/exercises/luhn/README.md +0 -1
- data/tracks/java/exercises/matrix/README.md +0 -1
- data/tracks/java/exercises/meetup/README.md +0 -1
- data/tracks/java/exercises/minesweeper/README.md +0 -1
- data/tracks/java/exercises/nth-prime/README.md +0 -1
- data/tracks/java/exercises/nucleotide-count/README.md +0 -1
- data/tracks/java/exercises/ocr-numbers/README.md +0 -1
- data/tracks/java/exercises/octal/README.md +0 -1
- data/tracks/java/exercises/palindrome-products/README.md +0 -1
- data/tracks/java/exercises/pangram/README.md +0 -1
- data/tracks/java/exercises/pascals-triangle/README.md +0 -1
- data/tracks/java/exercises/perfect-numbers/README.md +0 -1
- data/tracks/java/exercises/phone-number/README.md +0 -1
- data/tracks/java/exercises/pig-latin/README.md +0 -1
- data/tracks/java/exercises/poker/README.md +0 -1
- data/tracks/java/exercises/prime-factors/README.md +0 -1
- data/tracks/java/exercises/pythagorean-triplet/README.md +0 -1
- data/tracks/java/exercises/queen-attack/README.md +0 -1
- data/tracks/java/exercises/raindrops/README.md +0 -1
- data/tracks/java/exercises/rectangles/README.md +0 -1
- data/tracks/java/exercises/rna-transcription/README.md +0 -1
- data/tracks/java/exercises/robot-name/README.md +0 -1
- data/tracks/java/exercises/robot-simulator/README.md +0 -1
- data/tracks/java/exercises/roman-numerals/README.md +0 -1
- data/tracks/java/exercises/rotational-cipher/README.md +47 -0
- data/tracks/java/exercises/run-length-encoding/README.md +0 -1
- data/tracks/java/exercises/saddle-points/README.md +0 -1
- data/tracks/java/exercises/scrabble-score/README.md +0 -1
- data/tracks/java/exercises/secret-handshake/README.md +0 -1
- data/tracks/java/exercises/series/README.md +0 -1
- data/tracks/java/exercises/sieve/README.md +0 -1
- data/tracks/java/exercises/simple-cipher/README.md +0 -1
- data/tracks/java/exercises/simple-linked-list/README.md +0 -1
- data/tracks/java/exercises/space-age/README.md +0 -1
- data/tracks/java/exercises/spiral-matrix/README.md +0 -1
- data/tracks/java/exercises/strain/README.md +0 -1
- data/tracks/java/exercises/sublist/README.md +0 -1
- data/tracks/java/exercises/sum-of-multiples/README.md +0 -1
- data/tracks/java/exercises/transpose/README.md +0 -1
- data/tracks/java/exercises/triangle/README.md +0 -1
- data/tracks/java/exercises/trinary/README.md +0 -1
- data/tracks/java/exercises/twelve-days/README.md +0 -1
- data/tracks/java/exercises/two-fer/README.md +0 -1
- data/tracks/java/exercises/word-count/README.md +0 -1
- data/tracks/java/exercises/word-search/README.md +0 -1
- data/tracks/java/exercises/wordy/README.md +0 -1
- data/tracks/javascript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/javascript/exercises/accumulate/README.md +59 -0
- data/tracks/javascript/exercises/acronym/README.md +39 -0
- data/tracks/javascript/exercises/all-your-base/README.md +59 -0
- data/tracks/javascript/exercises/allergies/README.md +61 -0
- data/tracks/javascript/exercises/alphametics/README.md +59 -0
- data/tracks/javascript/exercises/anagram/README.md +37 -0
- data/tracks/javascript/exercises/atbash-cipher/README.md +58 -0
- data/tracks/javascript/exercises/beer-song/README.md +351 -0
- data/tracks/javascript/exercises/binary/README.md +59 -0
- data/tracks/javascript/exercises/binary-search/README.md +65 -0
- data/tracks/javascript/exercises/binary-search-tree/README.md +84 -0
- data/tracks/javascript/exercises/bob/README.md +42 -0
- data/tracks/javascript/exercises/bowling/README.md +77 -0
- data/tracks/javascript/exercises/bracket-push/README.md +34 -0
- data/tracks/javascript/exercises/circular-buffer/README.md +74 -0
- data/tracks/javascript/exercises/clock/README.md +37 -0
- data/tracks/javascript/exercises/crypto-square/README.md +98 -0
- data/tracks/javascript/exercises/custom-set/README.md +35 -0
- data/tracks/javascript/exercises/diamond/README.md +83 -0
- data/tracks/javascript/exercises/difference-of-squares/README.md +43 -0
- data/tracks/javascript/exercises/etl/README.md +75 -0
- data/tracks/javascript/exercises/flatten-array/README.md +42 -0
- data/tracks/javascript/exercises/food-chain/README.md +94 -0
- data/tracks/javascript/exercises/gigasecond/README.md +35 -0
- data/tracks/javascript/exercises/grade-school/README.md +66 -0
- data/tracks/javascript/exercises/grains/README.md +58 -0
- data/tracks/javascript/exercises/hamming/README.md +66 -0
- data/tracks/javascript/exercises/hello-world/README.md +132 -0
- data/tracks/javascript/exercises/hexadecimal/README.md +38 -0
- data/tracks/javascript/exercises/isogram/README.md +43 -0
- data/tracks/javascript/exercises/kindergarten-garden/README.md +90 -0
- data/tracks/javascript/exercises/largest-series-product/README.md +44 -0
- data/tracks/javascript/exercises/leap/README.md +57 -0
- data/tracks/javascript/exercises/linked-list/README.md +58 -0
- data/tracks/javascript/exercises/list-ops/README.md +34 -0
- data/tracks/javascript/exercises/luhn/README.md +95 -0
- data/tracks/javascript/exercises/matrix/README.md +69 -0
- data/tracks/javascript/exercises/meetup/README.md +54 -0
- data/tracks/javascript/exercises/minesweeper/README.md +54 -0
- data/tracks/javascript/exercises/nth-prime/README.md +39 -0
- data/tracks/javascript/exercises/nucleotide-count/README.md +57 -0
- data/tracks/javascript/exercises/ocr-numbers/README.md +109 -0
- data/tracks/javascript/exercises/octal/README.md +73 -0
- data/tracks/javascript/exercises/palindrome-products/README.md +64 -0
- data/tracks/javascript/exercises/pangram/README.md +39 -0
- data/tracks/javascript/exercises/pascals-triangle/README.md +45 -0
- data/tracks/javascript/exercises/perfect-numbers/README.md +48 -0
- data/tracks/javascript/exercises/phone-number/README.md +58 -0
- data/tracks/javascript/exercises/pig-latin/README.md +48 -0
- data/tracks/javascript/exercises/point-mutations/README.md +65 -0
- data/tracks/javascript/exercises/prime-factors/README.md +60 -0
- data/tracks/javascript/exercises/proverb/README.md +42 -0
- data/tracks/javascript/exercises/pythagorean-triplet/README.md +48 -0
- data/tracks/javascript/exercises/queen-attack/README.md +57 -0
- data/tracks/javascript/exercises/raindrops/README.md +48 -0
- data/tracks/javascript/exercises/rna-transcription/README.md +49 -0
- data/tracks/javascript/exercises/robot-name/README.md +46 -0
- data/tracks/javascript/exercises/robot-simulator/README.md +58 -0
- data/tracks/javascript/exercises/roman-numerals/README.md +73 -0
- data/tracks/javascript/exercises/run-length-encoding/README.md +54 -0
- data/tracks/javascript/exercises/saddle-points/README.md +57 -0
- data/tracks/javascript/exercises/say/README.md +93 -0
- data/tracks/javascript/exercises/scrabble-score/README.md +68 -0
- data/tracks/javascript/exercises/secret-handshake/README.md +59 -0
- data/tracks/javascript/exercises/series/README.md +51 -0
- data/tracks/javascript/exercises/sieve/README.md +58 -0
- data/tracks/javascript/exercises/simple-cipher/README.md +114 -0
- data/tracks/javascript/exercises/simple-linked-list/README.md +52 -0
- data/tracks/javascript/exercises/space-age/README.md +48 -0
- data/tracks/javascript/exercises/strain/README.md +64 -0
- data/tracks/javascript/exercises/sum-of-multiples/README.md +42 -0
- data/tracks/javascript/exercises/triangle/README.md +50 -0
- data/tracks/javascript/exercises/trinary/README.md +52 -0
- data/tracks/javascript/exercises/two-bucket/README.md +60 -0
- data/tracks/javascript/exercises/word-count/README.md +43 -0
- data/tracks/javascript/exercises/wordy/README.md +87 -0
- data/tracks/lua/config/exercise_readme.go.tmpl +16 -0
- data/tracks/lua/exercises/acronym/README.md +25 -0
- data/tracks/lua/exercises/all-your-base/README.md +45 -0
- data/tracks/lua/exercises/allergies/README.md +47 -0
- data/tracks/lua/exercises/alphametics/README.md +45 -0
- data/tracks/lua/exercises/anagram/README.md +23 -0
- data/tracks/lua/exercises/atbash-cipher/README.md +44 -0
- data/tracks/lua/exercises/bank-account/README.md +40 -0
- data/tracks/lua/exercises/beer-song/README.md +337 -0
- data/tracks/lua/exercises/binary/README.md +45 -0
- data/tracks/lua/exercises/binary-search/README.md +51 -0
- data/tracks/lua/exercises/binary-search-tree/README.md +70 -0
- data/tracks/lua/exercises/bob/README.md +28 -0
- data/tracks/lua/exercises/bowling/README.md +63 -0
- data/tracks/lua/exercises/bracket-push/README.md +20 -0
- data/tracks/lua/exercises/change/README.md +33 -0
- data/tracks/lua/exercises/circular-buffer/README.md +60 -0
- data/tracks/lua/exercises/clock/README.md +23 -0
- data/tracks/lua/exercises/crypto-square/README.md +84 -0
- data/tracks/lua/exercises/custom-set/README.md +21 -0
- data/tracks/lua/exercises/diamond/README.md +69 -0
- data/tracks/lua/exercises/difference-of-squares/README.md +29 -0
- data/tracks/lua/exercises/etl/README.md +61 -0
- data/tracks/lua/exercises/flatten-array/README.md +28 -0
- data/tracks/lua/exercises/food-chain/README.md +80 -0
- data/tracks/lua/exercises/gigasecond/README.md +21 -0
- data/tracks/lua/exercises/grade-school/README.md +52 -0
- data/tracks/lua/exercises/grains/README.md +44 -0
- data/tracks/lua/exercises/hamming/README.md +52 -0
- data/tracks/lua/exercises/hello-world/README.md +31 -0
- data/tracks/lua/exercises/house/README.md +123 -0
- data/tracks/lua/exercises/isogram/README.md +29 -0
- data/tracks/lua/exercises/kindergarten-garden/README.md +76 -0
- data/tracks/lua/exercises/largest-series-product/README.md +30 -0
- data/tracks/lua/exercises/leap/README.md +43 -0
- data/tracks/lua/exercises/linked-list/README.md +44 -0
- data/tracks/lua/exercises/list-ops/README.md +20 -0
- data/tracks/lua/exercises/luhn/README.md +81 -0
- data/tracks/lua/exercises/matrix/README.md +55 -0
- data/tracks/lua/exercises/meetup/README.md +40 -0
- data/tracks/lua/exercises/minesweeper/README.md +40 -0
- data/tracks/lua/exercises/nth-prime/README.md +25 -0
- data/tracks/lua/exercises/nucleotide-count/README.md +43 -0
- data/tracks/lua/exercises/ocr-numbers/README.md +95 -0
- data/tracks/lua/exercises/octal/README.md +59 -0
- data/tracks/lua/exercises/pangram/README.md +25 -0
- data/tracks/lua/exercises/pascals-triangle/README.md +31 -0
- data/tracks/lua/exercises/perfect-numbers/README.md +34 -0
- data/tracks/lua/exercises/phone-number/README.md +44 -0
- data/tracks/lua/exercises/pig-latin/README.md +34 -0
- data/tracks/lua/exercises/pov/README.md +56 -0
- data/tracks/lua/exercises/prime-factors/README.md +46 -0
- data/tracks/lua/exercises/protein-translation/README.md +59 -0
- data/tracks/lua/exercises/pythagorean-triplet/README.md +34 -0
- data/tracks/lua/exercises/rail-fence-cipher/README.md +70 -0
- data/tracks/lua/exercises/raindrops/README.md +34 -0
- data/tracks/lua/exercises/rectangles/README.md +77 -0
- data/tracks/lua/exercises/rna-transcription/README.md +35 -0
- data/tracks/lua/exercises/robot-name/README.md +32 -0
- data/tracks/lua/exercises/robot-simulator/README.md +44 -0
- data/tracks/lua/exercises/roman-numerals/README.md +59 -0
- data/tracks/lua/exercises/run-length-encoding/README.md +40 -0
- data/tracks/lua/exercises/say/README.md +79 -0
- data/tracks/lua/exercises/scrabble-score/README.md +54 -0
- data/tracks/lua/exercises/secret-handshake/README.md +45 -0
- data/tracks/lua/exercises/series/README.md +37 -0
- data/tracks/lua/exercises/sieve/README.md +44 -0
- data/tracks/lua/exercises/space-age/README.md +34 -0
- data/tracks/lua/exercises/sublist/README.md +31 -0
- data/tracks/lua/exercises/sum-of-multiples/README.md +28 -0
- data/tracks/lua/exercises/tournament/README.md +78 -0
- data/tracks/lua/exercises/transpose/README.md +75 -0
- data/tracks/lua/exercises/triangle/README.md +36 -0
- data/tracks/lua/exercises/variable-length-quantity/README.md +49 -0
- data/tracks/lua/exercises/word-count/README.md +29 -0
- data/tracks/lua/exercises/word-search/README.md +40 -0
- data/tracks/mips/config/exercise_readme.go.tmpl +16 -0
- data/tracks/mips/exercises/atbash-cipher/README.md +34 -0
- data/tracks/mips/exercises/binary/README.md +35 -0
- data/tracks/mips/exercises/difference-of-squares/README.md +19 -0
- data/tracks/mips/exercises/hamming/README.md +42 -0
- data/tracks/mips/exercises/hexadecimal/README.md +14 -0
- data/tracks/mips/exercises/isogram/README.md +19 -0
- data/tracks/mips/exercises/leap/README.md +33 -0
- data/tracks/mips/exercises/nth-prime/README.md +15 -0
- data/tracks/mips/exercises/octal/README.md +49 -0
- data/tracks/mips/exercises/raindrops/README.md +24 -0
- data/tracks/mips/exercises/rna-transcription/README.md +25 -0
- data/tracks/mips/exercises/scrabble-score/README.md +44 -0
- data/tracks/mips/exercises/triangle/README.md +26 -0
- data/tracks/mips/exercises/trinary/README.md +28 -0
- data/tracks/purescript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/purescript/exercises/accumulate/README.md +35 -0
- data/tracks/purescript/exercises/acronym/README.md +15 -0
- data/tracks/purescript/exercises/all-your-base/README.md +35 -0
- data/tracks/purescript/exercises/allergies/README.md +37 -0
- data/tracks/purescript/exercises/atbash-cipher/README.md +34 -0
- data/tracks/purescript/exercises/binary-search/README.md +41 -0
- data/tracks/purescript/exercises/bob/README.md +18 -0
- data/tracks/purescript/exercises/bracket-push/README.md +10 -0
- data/tracks/purescript/exercises/crypto-square/README.md +74 -0
- data/tracks/purescript/exercises/diamond/README.md +59 -0
- data/tracks/purescript/exercises/difference-of-squares/README.md +19 -0
- data/tracks/purescript/exercises/etl/README.md +51 -0
- data/tracks/purescript/exercises/hamming/README.md +42 -0
- data/tracks/purescript/exercises/hello-world/README.md +21 -0
- data/tracks/purescript/exercises/isogram/README.md +19 -0
- data/tracks/purescript/exercises/largest-series-product/README.md +20 -0
- data/tracks/purescript/exercises/leap/README.md +33 -0
- data/tracks/purescript/exercises/meetup/README.md +30 -0
- data/tracks/purescript/exercises/pangram/README.md +15 -0
- data/tracks/purescript/exercises/pascals-triangle/README.md +21 -0
- data/tracks/purescript/exercises/raindrops/README.md +24 -0
- data/tracks/purescript/exercises/scrabble-score/README.md +44 -0
- data/tracks/purescript/exercises/triangle/README.md +26 -0
- data/tracks/purescript/exercises/word-count/README.md +19 -0
- data/tracks/r/config/exercise_readme.go.tmpl +16 -0
- data/tracks/r/exercises/anagram/README.md +23 -0
- data/tracks/r/exercises/beer-song/README.md +337 -0
- data/tracks/r/exercises/bob/README.md +28 -0
- data/tracks/r/exercises/difference-of-squares/README.md +29 -0
- data/tracks/r/exercises/grains/README.md +44 -0
- data/tracks/r/exercises/hamming/README.md +52 -0
- data/tracks/r/exercises/hello-world/README.md +31 -0
- data/tracks/r/exercises/isogram/README.md +29 -0
- data/tracks/r/exercises/largest-series-product/README.md +30 -0
- data/tracks/r/exercises/leap/README.md +43 -0
- data/tracks/r/exercises/luhn/README.md +81 -0
- data/tracks/r/exercises/pascals-triangle/README.md +31 -0
- data/tracks/r/exercises/perfect-numbers/README.md +34 -0
- data/tracks/r/exercises/phone-number/README.md +44 -0
- data/tracks/r/exercises/prime-factors/README.md +46 -0
- data/tracks/r/exercises/raindrops/README.md +34 -0
- data/tracks/r/exercises/rna-transcription/README.md +35 -0
- data/tracks/r/exercises/rotational-cipher/README.md +46 -0
- data/tracks/r/exercises/scrabble-score/README.md +54 -0
- data/tracks/r/exercises/secret-handshake/README.md +45 -0
- data/tracks/r/exercises/sieve/README.md +44 -0
- data/tracks/r/exercises/space-age/README.md +34 -0
- data/tracks/r/exercises/sum-of-multiples/README.md +28 -0
- data/tracks/r/exercises/tournament/README.md +78 -0
- data/tracks/r/exercises/word-count/README.md +29 -0
- data/tracks/rust/{docs/EXERCISE_README_INSERT.md → config/exercise-readme-insert.md} +1 -1
- data/tracks/rust/config/exercise_readme.go.tmpl +16 -0
- data/tracks/rust/exercises/acronym/README.md +47 -0
- data/tracks/rust/exercises/all-your-base/README.md +67 -0
- data/tracks/rust/exercises/allergies/README.md +69 -0
- data/tracks/rust/exercises/alphametics/README.md +67 -0
- data/tracks/rust/exercises/anagram/README.md +45 -0
- data/tracks/rust/exercises/atbash-cipher/README.md +66 -0
- data/tracks/rust/exercises/beer-song/README.md +359 -0
- data/tracks/rust/exercises/bob/README.md +50 -0
- data/tracks/rust/exercises/bowling/README.md +85 -0
- data/tracks/rust/exercises/bracket-push/README.md +50 -0
- data/tracks/rust/exercises/circular-buffer/README.md +82 -0
- data/tracks/rust/exercises/custom-set/README.md +43 -0
- data/tracks/rust/exercises/difference-of-squares/README.md +51 -0
- data/tracks/rust/exercises/dominoes/README.md +50 -0
- data/tracks/rust/exercises/etl/README.md +83 -0
- data/tracks/rust/exercises/forth/README.md +61 -0
- data/tracks/rust/exercises/gigasecond/Cargo.lock +3 -3
- data/tracks/rust/exercises/gigasecond/Cargo.toml +1 -1
- data/tracks/rust/exercises/gigasecond/README.md +43 -0
- data/tracks/rust/exercises/gigasecond/example.rs +1 -1
- data/tracks/rust/exercises/gigasecond/src/lib.rs +2 -2
- data/tracks/rust/exercises/gigasecond/tests/gigasecond.rs +10 -10
- data/tracks/rust/exercises/grade-school/README.md +74 -0
- data/tracks/rust/exercises/grains/README.md +66 -0
- data/tracks/rust/exercises/hamming/README.md +74 -0
- data/tracks/rust/exercises/hello-world/README.md +53 -0
- data/tracks/rust/exercises/hexadecimal/README.md +46 -0
- data/tracks/rust/exercises/largest-series-product/README.md +60 -0
- data/tracks/rust/exercises/leap/README.md +65 -0
- data/tracks/rust/exercises/luhn/README.md +103 -0
- data/tracks/rust/exercises/luhn-from/README.md +49 -0
- data/tracks/rust/exercises/luhn-trait/README.md +57 -0
- data/tracks/rust/exercises/minesweeper/README.md +62 -0
- data/tracks/rust/exercises/nucleotide-codons/README.md +54 -0
- data/tracks/rust/exercises/nucleotide-count/README.md +65 -0
- data/tracks/rust/exercises/ocr-numbers/README.md +117 -0
- data/tracks/rust/exercises/pangram/README.md +47 -0
- data/tracks/rust/exercises/parallel-letter-frequency/README.md +77 -0
- data/tracks/rust/exercises/pascals-triangle/README.md +53 -0
- data/tracks/rust/exercises/phone-number/README.md +66 -0
- data/tracks/rust/exercises/protein-translation/README.md +81 -0
- data/tracks/rust/exercises/queen-attack/README.md +65 -0
- data/tracks/rust/exercises/raindrops/README.md +56 -0
- data/tracks/rust/exercises/react/README.md +51 -0
- data/tracks/rust/exercises/rectangles/README.md +99 -0
- data/tracks/rust/exercises/rna-transcription/README.md +57 -0
- data/tracks/rust/exercises/robot-name/README.md +54 -0
- data/tracks/rust/exercises/robot-simulator/README.md +66 -0
- data/tracks/rust/exercises/roman-numerals/README.md +81 -0
- data/tracks/rust/exercises/rotational-cipher/README.md +68 -0
- data/tracks/rust/exercises/run-length-encoding/README.md +62 -0
- data/tracks/rust/exercises/scrabble-score/README.md +76 -0
- data/tracks/rust/exercises/sieve/README.md +66 -0
- data/tracks/rust/exercises/space-age/README.md +64 -0
- data/tracks/rust/exercises/sublist/README.md +53 -0
- data/tracks/rust/exercises/sum-of-multiples/README.md +50 -0
- data/tracks/rust/exercises/tournament/README.md +100 -0
- data/tracks/rust/exercises/triangle/README.md +71 -0
- data/tracks/rust/exercises/variable-length-quantity/README.md +71 -0
- data/tracks/rust/exercises/word-count/README.md +51 -0
- data/tracks/rust/exercises/wordy/README.md +95 -0
- data/tracks/vimscript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/vimscript/exercises/allergies/README.md +46 -0
- data/tracks/vimscript/exercises/anagram/README.md +22 -0
- data/tracks/vimscript/exercises/atbash-cipher/README.md +43 -0
- data/tracks/vimscript/exercises/beer-song/README.md +336 -0
- data/tracks/vimscript/exercises/bob/README.md +27 -0
- data/tracks/vimscript/exercises/difference-of-squares/README.md +28 -0
- data/tracks/vimscript/exercises/etl/README.md +60 -0
- data/tracks/vimscript/exercises/hamming/README.md +51 -0
- data/tracks/vimscript/exercises/hello-world/README.md +30 -0
- data/tracks/vimscript/exercises/largest-series-product/README.md +29 -0
- data/tracks/vimscript/exercises/leap/README.md +42 -0
- data/tracks/vimscript/exercises/nucleotide-count/README.md +42 -0
- data/tracks/vimscript/exercises/pangram/README.md +24 -0
- data/tracks/vimscript/exercises/phone-number/README.md +43 -0
- data/tracks/vimscript/exercises/raindrops/README.md +33 -0
- data/tracks/vimscript/exercises/rna-transcription/README.md +34 -0
- data/tracks/vimscript/exercises/roman-numerals/README.md +58 -0
- data/tracks/vimscript/exercises/scrabble-score/README.md +53 -0
- data/tracks/vimscript/exercises/triangle/README.md +35 -0
- data/tracks/vimscript/exercises/word-count/README.md +28 -0
- metadata +466 -86
- data/tracks/java/exercises/anagram/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/atbash-cipher/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bank-account/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/beer-song/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/binary/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/binary-search/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/binary-search-tree/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bob/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/book-store/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bowling/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bracket-push/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/change/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/circular-buffer/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/clock/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/collatz-conjecture/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/complex-numbers/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/crypto-square/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/custom-set/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/diamond/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/difference-of-squares/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/etl/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/flatten-array/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/food-chain/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/gigasecond/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/grade-school/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/hamming/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/hello-world/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/hexadecimal/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/isogram/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/kindergarten-garden/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/largest-series-product/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/linked-list/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/list-ops/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/luhn/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/matrix/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/meetup/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/minesweeper/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/nth-prime/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/nucleotide-count/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/ocr-numbers/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/octal/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/palindrome-products/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pangram/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pascals-triangle/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/perfect-numbers/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/phone-number/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pig-latin/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/poker/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/prime-factors/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pythagorean-triplet/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/queen-attack/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/raindrops/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/rectangles/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/rna-transcription/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/robot-name/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/robot-simulator/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/roman-numerals/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/run-length-encoding/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/saddle-points/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/scrabble-score/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/secret-handshake/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/series/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/sieve/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/simple-cipher/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/simple-linked-list/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/space-age/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/spiral-matrix/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/strain/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/sublist/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/sum-of-multiples/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/transpose/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/triangle/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/trinary/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/twelve-days/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/two-fer/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/word-count/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/word-search/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/wordy/.meta/readme.go.tmpl +0 -17
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Grains
|
|
2
|
+
|
|
3
|
+
Calculate the number of grains of wheat on a chessboard given that the number
|
|
4
|
+
on each square doubles.
|
|
5
|
+
|
|
6
|
+
There once was a wise servant who saved the life of a prince. The king
|
|
7
|
+
promised to pay whatever the servant could dream up. Knowing that the
|
|
8
|
+
king loved chess, the servant told the king he would like to have grains
|
|
9
|
+
of wheat. One grain on the first square of a chess board. Two grains on
|
|
10
|
+
the next. Four on the third, and so on.
|
|
11
|
+
|
|
12
|
+
There are 64 squares on a chessboard.
|
|
13
|
+
|
|
14
|
+
Write code that shows:
|
|
15
|
+
- how many grains were on each square, and
|
|
16
|
+
- the total number of grains
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## For bonus points
|
|
20
|
+
|
|
21
|
+
Did you get the tests passing and the code clean? If you want to, these
|
|
22
|
+
are some additional things you could try:
|
|
23
|
+
|
|
24
|
+
- Optimize for speed.
|
|
25
|
+
- Optimize for readability.
|
|
26
|
+
|
|
27
|
+
Then please share your thoughts in a comment on the submission. Did this
|
|
28
|
+
experiment make the code better? Worse? Did you learn anything from it?
|
|
29
|
+
|
|
30
|
+
## Getting Started
|
|
31
|
+
|
|
32
|
+
Make sure you have read the
|
|
33
|
+
[C page](http://exercism.io/languages/c) on the Exercism site. This covers
|
|
34
|
+
the basic information on setting up the development environment expected
|
|
35
|
+
by the exercises.
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## Passing the Tests
|
|
39
|
+
|
|
40
|
+
Get the first test compiling, linking and passing by following the [three
|
|
41
|
+
rules of test-driven development][3-tdd-rules].
|
|
42
|
+
|
|
43
|
+
The included makefile can be used to create and run the tests using the `test`
|
|
44
|
+
task.
|
|
45
|
+
|
|
46
|
+
make test
|
|
47
|
+
|
|
48
|
+
Create just the functions you need to satisfy any compiler errors and get the
|
|
49
|
+
test to fail. Then write just enough code to get the test to pass. Once you've
|
|
50
|
+
done that, move onto the next test.
|
|
51
|
+
|
|
52
|
+
[3-tdd-rules]: http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
|
|
53
|
+
|
|
54
|
+
As you progress through the tests, take the time to refactor your
|
|
55
|
+
implementation for readability and expressiveness and then go on to the next
|
|
56
|
+
test.
|
|
57
|
+
|
|
58
|
+
Try to use standard C99 facilities in preference to writing your own
|
|
59
|
+
low-level algorithms or facilities by hand.
|
|
60
|
+
|
|
61
|
+
## Source
|
|
62
|
+
|
|
63
|
+
JavaRanch Cattle Drive, exercise 6 [http://www.javaranch.com/grains.jsp](http://www.javaranch.com/grains.jsp)
|
|
64
|
+
|
|
65
|
+
## Submitting Incomplete Solutions
|
|
66
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Hamming
|
|
2
|
+
|
|
3
|
+
Calculate the Hamming difference between two DNA strands.
|
|
4
|
+
|
|
5
|
+
A mutation is simply a mistake that occurs during the creation or
|
|
6
|
+
copying of a nucleic acid, in particular DNA. Because nucleic acids are
|
|
7
|
+
vital to cellular functions, mutations tend to cause a ripple effect
|
|
8
|
+
throughout the cell. Although mutations are technically mistakes, a very
|
|
9
|
+
rare mutation may equip the cell with a beneficial attribute. In fact,
|
|
10
|
+
the macro effects of evolution are attributable by the accumulated
|
|
11
|
+
result of beneficial microscopic mutations over many generations.
|
|
12
|
+
|
|
13
|
+
The simplest and most common type of nucleic acid mutation is a point
|
|
14
|
+
mutation, which replaces one base with another at a single nucleotide.
|
|
15
|
+
|
|
16
|
+
By counting the number of differences between two homologous DNA strands
|
|
17
|
+
taken from different genomes with a common ancestor, we get a measure of
|
|
18
|
+
the minimum number of point mutations that could have occurred on the
|
|
19
|
+
evolutionary path between the two strands.
|
|
20
|
+
|
|
21
|
+
This is called the 'Hamming distance'.
|
|
22
|
+
|
|
23
|
+
It is found by comparing two DNA strands and counting how many of the
|
|
24
|
+
nucleotides are different from their equivalent in the other string.
|
|
25
|
+
|
|
26
|
+
GAGCCTACTAACGGGAT
|
|
27
|
+
CATCGTAATGACGGCCT
|
|
28
|
+
^ ^ ^ ^ ^ ^^
|
|
29
|
+
|
|
30
|
+
The Hamming distance between these two DNA strands is 7.
|
|
31
|
+
|
|
32
|
+
# Implementation notes
|
|
33
|
+
|
|
34
|
+
The Hamming distance is only defined for sequences of equal length. This means
|
|
35
|
+
that based on the definition, each language could deal with getting sequences
|
|
36
|
+
of equal length differently.
|
|
37
|
+
|
|
38
|
+
## Getting Started
|
|
39
|
+
|
|
40
|
+
Make sure you have read the
|
|
41
|
+
[C page](http://exercism.io/languages/c) on the Exercism site. This covers
|
|
42
|
+
the basic information on setting up the development environment expected
|
|
43
|
+
by the exercises.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## Passing the Tests
|
|
47
|
+
|
|
48
|
+
Get the first test compiling, linking and passing by following the [three
|
|
49
|
+
rules of test-driven development][3-tdd-rules].
|
|
50
|
+
|
|
51
|
+
The included makefile can be used to create and run the tests using the `test`
|
|
52
|
+
task.
|
|
53
|
+
|
|
54
|
+
make test
|
|
55
|
+
|
|
56
|
+
Create just the functions you need to satisfy any compiler errors and get the
|
|
57
|
+
test to fail. Then write just enough code to get the test to pass. Once you've
|
|
58
|
+
done that, move onto the next test.
|
|
59
|
+
|
|
60
|
+
[3-tdd-rules]: http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
|
|
61
|
+
|
|
62
|
+
As you progress through the tests, take the time to refactor your
|
|
63
|
+
implementation for readability and expressiveness and then go on to the next
|
|
64
|
+
test.
|
|
65
|
+
|
|
66
|
+
Try to use standard C99 facilities in preference to writing your own
|
|
67
|
+
low-level algorithms or facilities by hand.
|
|
68
|
+
|
|
69
|
+
## Source
|
|
70
|
+
|
|
71
|
+
The Calculating Point Mutations problem at Rosalind [http://rosalind.info/problems/hamm/](http://rosalind.info/problems/hamm/)
|
|
72
|
+
|
|
73
|
+
## Submitting Incomplete Solutions
|
|
74
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Hello World
|
|
2
|
+
|
|
3
|
+
The classical introductory exercise. Just say "Hello, World!".
|
|
4
|
+
|
|
5
|
+
["Hello, World!"](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program) is
|
|
6
|
+
the traditional first program for beginning programming in a new language
|
|
7
|
+
or environment.
|
|
8
|
+
|
|
9
|
+
The objectives are simple:
|
|
10
|
+
|
|
11
|
+
- Write a function that returns the string "Hello, World!".
|
|
12
|
+
- Run the test suite and make sure that it succeeds.
|
|
13
|
+
- Submit your solution and check it at the website.
|
|
14
|
+
|
|
15
|
+
If everything goes well, you will be ready to fetch your first real exercise.
|
|
16
|
+
|
|
17
|
+
## Getting Started
|
|
18
|
+
|
|
19
|
+
Make sure you have read the
|
|
20
|
+
[C page](http://exercism.io/languages/c) on the Exercism site. This covers
|
|
21
|
+
the basic information on setting up the development environment expected
|
|
22
|
+
by the exercises.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## Passing the Tests
|
|
26
|
+
|
|
27
|
+
Get the first test compiling, linking and passing by following the [three
|
|
28
|
+
rules of test-driven development][3-tdd-rules].
|
|
29
|
+
|
|
30
|
+
The included makefile can be used to create and run the tests using the `test`
|
|
31
|
+
task.
|
|
32
|
+
|
|
33
|
+
make test
|
|
34
|
+
|
|
35
|
+
Create just the functions you need to satisfy any compiler errors and get the
|
|
36
|
+
test to fail. Then write just enough code to get the test to pass. Once you've
|
|
37
|
+
done that, move onto the next test.
|
|
38
|
+
|
|
39
|
+
[3-tdd-rules]: http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
|
|
40
|
+
|
|
41
|
+
As you progress through the tests, take the time to refactor your
|
|
42
|
+
implementation for readability and expressiveness and then go on to the next
|
|
43
|
+
test.
|
|
44
|
+
|
|
45
|
+
Try to use standard C99 facilities in preference to writing your own
|
|
46
|
+
low-level algorithms or facilities by hand.
|
|
47
|
+
|
|
48
|
+
## Source
|
|
49
|
+
|
|
50
|
+
This is an exercise to introduce users to using Exercism [http://en.wikipedia.org/wiki/%22Hello,_world!%22_program](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program)
|
|
51
|
+
|
|
52
|
+
## Submitting Incomplete Solutions
|
|
53
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Isogram
|
|
2
|
+
|
|
3
|
+
Determine if a word or phrase is an isogram.
|
|
4
|
+
|
|
5
|
+
An isogram (also known as a "nonpattern word") is a word or phrase without a repeating letter.
|
|
6
|
+
|
|
7
|
+
Examples of isograms:
|
|
8
|
+
|
|
9
|
+
- lumberjacks
|
|
10
|
+
- background
|
|
11
|
+
- downstream
|
|
12
|
+
|
|
13
|
+
The word *isograms*, however, is not an isogram, because the s repeats.
|
|
14
|
+
|
|
15
|
+
## Getting Started
|
|
16
|
+
|
|
17
|
+
Make sure you have read the
|
|
18
|
+
[C page](http://exercism.io/languages/c) on the Exercism site. This covers
|
|
19
|
+
the basic information on setting up the development environment expected
|
|
20
|
+
by the exercises.
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## Passing the Tests
|
|
24
|
+
|
|
25
|
+
Get the first test compiling, linking and passing by following the [three
|
|
26
|
+
rules of test-driven development][3-tdd-rules].
|
|
27
|
+
|
|
28
|
+
The included makefile can be used to create and run the tests using the `test`
|
|
29
|
+
task.
|
|
30
|
+
|
|
31
|
+
make test
|
|
32
|
+
|
|
33
|
+
Create just the functions you need to satisfy any compiler errors and get the
|
|
34
|
+
test to fail. Then write just enough code to get the test to pass. Once you've
|
|
35
|
+
done that, move onto the next test.
|
|
36
|
+
|
|
37
|
+
[3-tdd-rules]: http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
|
|
38
|
+
|
|
39
|
+
As you progress through the tests, take the time to refactor your
|
|
40
|
+
implementation for readability and expressiveness and then go on to the next
|
|
41
|
+
test.
|
|
42
|
+
|
|
43
|
+
Try to use standard C99 facilities in preference to writing your own
|
|
44
|
+
low-level algorithms or facilities by hand.
|
|
45
|
+
|
|
46
|
+
## Source
|
|
47
|
+
|
|
48
|
+
Wikipedia [https://en.wikipedia.org/wiki/Isogram](https://en.wikipedia.org/wiki/Isogram)
|
|
49
|
+
|
|
50
|
+
## Submitting Incomplete Solutions
|
|
51
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Largest Series Product
|
|
2
|
+
|
|
3
|
+
Given a string of digits, calculate the largest product for a contiguous
|
|
4
|
+
substring of digits of length n.
|
|
5
|
+
|
|
6
|
+
For example, for the input `'1027839564'`, the largest product for a
|
|
7
|
+
series of 3 digits is 270 (9 * 5 * 6), and the largest product for a
|
|
8
|
+
series of 5 digits is 7560 (7 * 8 * 3 * 9 * 5).
|
|
9
|
+
|
|
10
|
+
Note that these series are only required to occupy *adjacent positions*
|
|
11
|
+
in the input; the digits need not be *numerically consecutive*.
|
|
12
|
+
|
|
13
|
+
For the input `'73167176531330624919225119674426574742355349194934'`,
|
|
14
|
+
the largest product for a series of 6 digits is 23520.
|
|
15
|
+
|
|
16
|
+
## Getting Started
|
|
17
|
+
|
|
18
|
+
Make sure you have read the
|
|
19
|
+
[C page](http://exercism.io/languages/c) on the Exercism site. This covers
|
|
20
|
+
the basic information on setting up the development environment expected
|
|
21
|
+
by the exercises.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## Passing the Tests
|
|
25
|
+
|
|
26
|
+
Get the first test compiling, linking and passing by following the [three
|
|
27
|
+
rules of test-driven development][3-tdd-rules].
|
|
28
|
+
|
|
29
|
+
The included makefile can be used to create and run the tests using the `test`
|
|
30
|
+
task.
|
|
31
|
+
|
|
32
|
+
make test
|
|
33
|
+
|
|
34
|
+
Create just the functions you need to satisfy any compiler errors and get the
|
|
35
|
+
test to fail. Then write just enough code to get the test to pass. Once you've
|
|
36
|
+
done that, move onto the next test.
|
|
37
|
+
|
|
38
|
+
[3-tdd-rules]: http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
|
|
39
|
+
|
|
40
|
+
As you progress through the tests, take the time to refactor your
|
|
41
|
+
implementation for readability and expressiveness and then go on to the next
|
|
42
|
+
test.
|
|
43
|
+
|
|
44
|
+
Try to use standard C99 facilities in preference to writing your own
|
|
45
|
+
low-level algorithms or facilities by hand.
|
|
46
|
+
|
|
47
|
+
## Source
|
|
48
|
+
|
|
49
|
+
A variation on Problem 8 at Project Euler [http://projecteuler.net/problem=8](http://projecteuler.net/problem=8)
|
|
50
|
+
|
|
51
|
+
## Submitting Incomplete Solutions
|
|
52
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Leap
|
|
2
|
+
|
|
3
|
+
Given a year, report if it is a leap year.
|
|
4
|
+
|
|
5
|
+
The tricky thing here is that a leap year in the Gregorian calendar occurs:
|
|
6
|
+
|
|
7
|
+
```plain
|
|
8
|
+
on every year that is evenly divisible by 4
|
|
9
|
+
except every year that is evenly divisible by 100
|
|
10
|
+
unless the year is also evenly divisible by 400
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
For example, 1997 is not a leap year, but 1996 is. 1900 is not a leap
|
|
14
|
+
year, but 2000 is.
|
|
15
|
+
|
|
16
|
+
If your language provides a method in the standard library that does
|
|
17
|
+
this look-up, pretend it doesn't exist and implement it yourself.
|
|
18
|
+
|
|
19
|
+
## Notes
|
|
20
|
+
|
|
21
|
+
Though our exercise adopts some very simple rules, there is more to
|
|
22
|
+
learn!
|
|
23
|
+
|
|
24
|
+
For a delightful, four minute explanation of the whole leap year
|
|
25
|
+
phenomenon, go watch [this youtube video][video].
|
|
26
|
+
|
|
27
|
+
[video]: http://www.youtube.com/watch?v=xX96xng7sAE
|
|
28
|
+
|
|
29
|
+
## Getting Started
|
|
30
|
+
|
|
31
|
+
Make sure you have read the
|
|
32
|
+
[C page](http://exercism.io/languages/c) on the Exercism site. This covers
|
|
33
|
+
the basic information on setting up the development environment expected
|
|
34
|
+
by the exercises.
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## Passing the Tests
|
|
38
|
+
|
|
39
|
+
Get the first test compiling, linking and passing by following the [three
|
|
40
|
+
rules of test-driven development][3-tdd-rules].
|
|
41
|
+
|
|
42
|
+
The included makefile can be used to create and run the tests using the `test`
|
|
43
|
+
task.
|
|
44
|
+
|
|
45
|
+
make test
|
|
46
|
+
|
|
47
|
+
Create just the functions you need to satisfy any compiler errors and get the
|
|
48
|
+
test to fail. Then write just enough code to get the test to pass. Once you've
|
|
49
|
+
done that, move onto the next test.
|
|
50
|
+
|
|
51
|
+
[3-tdd-rules]: http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
|
|
52
|
+
|
|
53
|
+
As you progress through the tests, take the time to refactor your
|
|
54
|
+
implementation for readability and expressiveness and then go on to the next
|
|
55
|
+
test.
|
|
56
|
+
|
|
57
|
+
Try to use standard C99 facilities in preference to writing your own
|
|
58
|
+
low-level algorithms or facilities by hand.
|
|
59
|
+
|
|
60
|
+
## Source
|
|
61
|
+
|
|
62
|
+
JavaRanch Cattle Drive, exercise 3 [http://www.javaranch.com/leap.jsp](http://www.javaranch.com/leap.jsp)
|
|
63
|
+
|
|
64
|
+
## Submitting Incomplete Solutions
|
|
65
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Meetup
|
|
2
|
+
|
|
3
|
+
Calculate the date of meetups.
|
|
4
|
+
|
|
5
|
+
Typically meetups happen on the same day of the week. In this exercise, you will take
|
|
6
|
+
a description of a meetup date, and return the actual meetup date.
|
|
7
|
+
|
|
8
|
+
Examples of general descriptions are:
|
|
9
|
+
|
|
10
|
+
- the first Monday of January 2017
|
|
11
|
+
- the third Tuesday of January 2017
|
|
12
|
+
- the Wednesteenth of January 2017
|
|
13
|
+
- the last Thursday of January 2017
|
|
14
|
+
|
|
15
|
+
Note that "Monteenth", "Tuesteenth", etc are all made up words. There
|
|
16
|
+
was a meetup whose members realized that there are exactly 7 numbered days in a month that
|
|
17
|
+
end in '-teenth'. Therefore, one is guaranteed that each day of the week
|
|
18
|
+
(Monday, Tuesday, ...) will have exactly one date that is named with '-teenth'
|
|
19
|
+
in every month.
|
|
20
|
+
|
|
21
|
+
Given examples of a meetup dates, each containing a month, day, year, and descriptor
|
|
22
|
+
(first, second, teenth, etc), calculate the date of the actual meetup.
|
|
23
|
+
For example, if given "First Monday of January 2017", the correct meetup date is 2017/1/2
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## Getting Started
|
|
27
|
+
|
|
28
|
+
Make sure you have read the
|
|
29
|
+
[C page](http://exercism.io/languages/c) on the Exercism site. This covers
|
|
30
|
+
the basic information on setting up the development environment expected
|
|
31
|
+
by the exercises.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## Passing the Tests
|
|
35
|
+
|
|
36
|
+
Get the first test compiling, linking and passing by following the [three
|
|
37
|
+
rules of test-driven development][3-tdd-rules].
|
|
38
|
+
|
|
39
|
+
The included makefile can be used to create and run the tests using the `test`
|
|
40
|
+
task.
|
|
41
|
+
|
|
42
|
+
make test
|
|
43
|
+
|
|
44
|
+
Create just the functions you need to satisfy any compiler errors and get the
|
|
45
|
+
test to fail. Then write just enough code to get the test to pass. Once you've
|
|
46
|
+
done that, move onto the next test.
|
|
47
|
+
|
|
48
|
+
[3-tdd-rules]: http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
|
|
49
|
+
|
|
50
|
+
As you progress through the tests, take the time to refactor your
|
|
51
|
+
implementation for readability and expressiveness and then go on to the next
|
|
52
|
+
test.
|
|
53
|
+
|
|
54
|
+
Try to use standard C99 facilities in preference to writing your own
|
|
55
|
+
low-level algorithms or facilities by hand.
|
|
56
|
+
|
|
57
|
+
## Source
|
|
58
|
+
|
|
59
|
+
Jeremy Hinegardner mentioned a Boulder meetup that happens on the Wednesteenth of every month [https://twitter.com/copiousfreetime](https://twitter.com/copiousfreetime)
|
|
60
|
+
|
|
61
|
+
## Submitting Incomplete Solutions
|
|
62
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Nth Prime
|
|
2
|
+
|
|
3
|
+
Given a number n, determine what the nth prime is.
|
|
4
|
+
|
|
5
|
+
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that
|
|
6
|
+
the 6th prime is 13.
|
|
7
|
+
|
|
8
|
+
If your language provides methods in the standard library to deal with prime
|
|
9
|
+
numbers, pretend they don't exist and implement them yourself.
|
|
10
|
+
|
|
11
|
+
## Getting Started
|
|
12
|
+
|
|
13
|
+
Make sure you have read the
|
|
14
|
+
[C page](http://exercism.io/languages/c) on the Exercism site. This covers
|
|
15
|
+
the basic information on setting up the development environment expected
|
|
16
|
+
by the exercises.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## Passing the Tests
|
|
20
|
+
|
|
21
|
+
Get the first test compiling, linking and passing by following the [three
|
|
22
|
+
rules of test-driven development][3-tdd-rules].
|
|
23
|
+
|
|
24
|
+
The included makefile can be used to create and run the tests using the `test`
|
|
25
|
+
task.
|
|
26
|
+
|
|
27
|
+
make test
|
|
28
|
+
|
|
29
|
+
Create just the functions you need to satisfy any compiler errors and get the
|
|
30
|
+
test to fail. Then write just enough code to get the test to pass. Once you've
|
|
31
|
+
done that, move onto the next test.
|
|
32
|
+
|
|
33
|
+
[3-tdd-rules]: http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
|
|
34
|
+
|
|
35
|
+
As you progress through the tests, take the time to refactor your
|
|
36
|
+
implementation for readability and expressiveness and then go on to the next
|
|
37
|
+
test.
|
|
38
|
+
|
|
39
|
+
Try to use standard C99 facilities in preference to writing your own
|
|
40
|
+
low-level algorithms or facilities by hand.
|
|
41
|
+
|
|
42
|
+
## Source
|
|
43
|
+
|
|
44
|
+
A variation on Problem 7 at Project Euler [http://projecteuler.net/problem=7](http://projecteuler.net/problem=7)
|
|
45
|
+
|
|
46
|
+
## Submitting Incomplete Solutions
|
|
47
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Nucleotide Count
|
|
2
|
+
|
|
3
|
+
Given a DNA string, compute how many times each nucleotide occurs in the string.
|
|
4
|
+
|
|
5
|
+
DNA is represented by an alphabet of the following symbols: 'A', 'C',
|
|
6
|
+
'G', and 'T'.
|
|
7
|
+
|
|
8
|
+
Each symbol represents a nucleotide, which is a fancy name for the
|
|
9
|
+
particular molecules that happen to make up a large part of DNA.
|
|
10
|
+
|
|
11
|
+
Shortest intro to biochemistry EVAR:
|
|
12
|
+
|
|
13
|
+
- twigs are to birds nests as
|
|
14
|
+
- nucleotides are to DNA and RNA as
|
|
15
|
+
- amino acids are to proteins as
|
|
16
|
+
- sugar is to starch as
|
|
17
|
+
- oh crap lipids
|
|
18
|
+
|
|
19
|
+
I'm not going to talk about lipids because they're crazy complex.
|
|
20
|
+
|
|
21
|
+
So back to nucleotides.
|
|
22
|
+
|
|
23
|
+
DNA contains four types of them: adenine (`A`), cytosine (`C`), guanine
|
|
24
|
+
(`G`), and thymine (`T`).
|
|
25
|
+
|
|
26
|
+
RNA contains a slightly different set of nucleotides, but we don't care
|
|
27
|
+
about that for now.
|
|
28
|
+
|
|
29
|
+
## Getting Started
|
|
30
|
+
|
|
31
|
+
Make sure you have read the
|
|
32
|
+
[C page](http://exercism.io/languages/c) on the Exercism site. This covers
|
|
33
|
+
the basic information on setting up the development environment expected
|
|
34
|
+
by the exercises.
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## Passing the Tests
|
|
38
|
+
|
|
39
|
+
Get the first test compiling, linking and passing by following the [three
|
|
40
|
+
rules of test-driven development][3-tdd-rules].
|
|
41
|
+
|
|
42
|
+
The included makefile can be used to create and run the tests using the `test`
|
|
43
|
+
task.
|
|
44
|
+
|
|
45
|
+
make test
|
|
46
|
+
|
|
47
|
+
Create just the functions you need to satisfy any compiler errors and get the
|
|
48
|
+
test to fail. Then write just enough code to get the test to pass. Once you've
|
|
49
|
+
done that, move onto the next test.
|
|
50
|
+
|
|
51
|
+
[3-tdd-rules]: http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
|
|
52
|
+
|
|
53
|
+
As you progress through the tests, take the time to refactor your
|
|
54
|
+
implementation for readability and expressiveness and then go on to the next
|
|
55
|
+
test.
|
|
56
|
+
|
|
57
|
+
Try to use standard C99 facilities in preference to writing your own
|
|
58
|
+
low-level algorithms or facilities by hand.
|
|
59
|
+
|
|
60
|
+
## Source
|
|
61
|
+
|
|
62
|
+
The Calculating DNA Nucleotides_problem at Rosalind [http://rosalind.info/problems/dna/](http://rosalind.info/problems/dna/)
|
|
63
|
+
|
|
64
|
+
## Submitting Incomplete Solutions
|
|
65
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Palindrome Products
|
|
2
|
+
|
|
3
|
+
Detect palindrome products in a given range.
|
|
4
|
+
|
|
5
|
+
A palindromic number is a number that remains the same when its digits are
|
|
6
|
+
reversed. For example, `121` is a palindromic number but `112` is not.
|
|
7
|
+
|
|
8
|
+
Given the definition of a palindromic number, we define a palindrome _product_
|
|
9
|
+
to be the product `c`, such that `a * b = c`, where `c` is a palindromic number and
|
|
10
|
+
`a` and `b` are integers (possibly, but _not_ necessarily palindromic numbers).
|
|
11
|
+
|
|
12
|
+
For example, the palindromic number 9009 can be written as the palindrome
|
|
13
|
+
product: `91 * 99 = 9009`.
|
|
14
|
+
|
|
15
|
+
It's possible (and indeed common) for a palindrome product to be the product
|
|
16
|
+
of multiple combinations of numbers. For example, the palindrome product `9` has
|
|
17
|
+
the factors `(1, 9)`, `(3, 3)`, and `(9, 1)`.
|
|
18
|
+
|
|
19
|
+
Write a program that given a range of integers, returns the smallest and largest
|
|
20
|
+
palindromic product within that range, along with all of it's factors.
|
|
21
|
+
|
|
22
|
+
## Example 1
|
|
23
|
+
|
|
24
|
+
Given the range `[1, 9]` (both inclusive)...
|
|
25
|
+
|
|
26
|
+
The smallest product is `1`. It's factors are `(1, 1)`.
|
|
27
|
+
The largest product is `9`. It's factors are `(1, 9)`, `(3, 3)`, and `(9, 1)`.
|
|
28
|
+
|
|
29
|
+
## Example 2
|
|
30
|
+
|
|
31
|
+
Given the range `[10, 99]` (both inclusive)...
|
|
32
|
+
|
|
33
|
+
The smallest palindrome product is `121`. It's factors are `(11, 11)`.
|
|
34
|
+
The largest palindrome product is `9009`. It's factors are `(91, 99)` and `(99, 91)`.
|
|
35
|
+
|
|
36
|
+
## Getting Started
|
|
37
|
+
|
|
38
|
+
Make sure you have read the
|
|
39
|
+
[C page](http://exercism.io/languages/c) on the Exercism site. This covers
|
|
40
|
+
the basic information on setting up the development environment expected
|
|
41
|
+
by the exercises.
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Passing the Tests
|
|
45
|
+
|
|
46
|
+
Get the first test compiling, linking and passing by following the [three
|
|
47
|
+
rules of test-driven development][3-tdd-rules].
|
|
48
|
+
|
|
49
|
+
The included makefile can be used to create and run the tests using the `test`
|
|
50
|
+
task.
|
|
51
|
+
|
|
52
|
+
make test
|
|
53
|
+
|
|
54
|
+
Create just the functions you need to satisfy any compiler errors and get the
|
|
55
|
+
test to fail. Then write just enough code to get the test to pass. Once you've
|
|
56
|
+
done that, move onto the next test.
|
|
57
|
+
|
|
58
|
+
[3-tdd-rules]: http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
|
|
59
|
+
|
|
60
|
+
As you progress through the tests, take the time to refactor your
|
|
61
|
+
implementation for readability and expressiveness and then go on to the next
|
|
62
|
+
test.
|
|
63
|
+
|
|
64
|
+
Try to use standard C99 facilities in preference to writing your own
|
|
65
|
+
low-level algorithms or facilities by hand.
|
|
66
|
+
|
|
67
|
+
## Source
|
|
68
|
+
|
|
69
|
+
Problem 4 at Project Euler [http://projecteuler.net/problem=4](http://projecteuler.net/problem=4)
|
|
70
|
+
|
|
71
|
+
## Submitting Incomplete Solutions
|
|
72
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Pangram
|
|
2
|
+
|
|
3
|
+
Determine if a sentence is a pangram. A pangram (Greek: παν γράμμα, pan gramma,
|
|
4
|
+
"every letter") is a sentence using every letter of the alphabet at least once.
|
|
5
|
+
The best known English pangram is:
|
|
6
|
+
> The quick brown fox jumps over the lazy dog.
|
|
7
|
+
|
|
8
|
+
The alphabet used consists of ASCII letters `a` to `z`, inclusive, and is case
|
|
9
|
+
insensitive. Input will not contain non-ASCII symbols.
|
|
10
|
+
|
|
11
|
+
## Getting Started
|
|
12
|
+
|
|
13
|
+
Make sure you have read the
|
|
14
|
+
[C page](http://exercism.io/languages/c) on the Exercism site. This covers
|
|
15
|
+
the basic information on setting up the development environment expected
|
|
16
|
+
by the exercises.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## Passing the Tests
|
|
20
|
+
|
|
21
|
+
Get the first test compiling, linking and passing by following the [three
|
|
22
|
+
rules of test-driven development][3-tdd-rules].
|
|
23
|
+
|
|
24
|
+
The included makefile can be used to create and run the tests using the `test`
|
|
25
|
+
task.
|
|
26
|
+
|
|
27
|
+
make test
|
|
28
|
+
|
|
29
|
+
Create just the functions you need to satisfy any compiler errors and get the
|
|
30
|
+
test to fail. Then write just enough code to get the test to pass. Once you've
|
|
31
|
+
done that, move onto the next test.
|
|
32
|
+
|
|
33
|
+
[3-tdd-rules]: http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
|
|
34
|
+
|
|
35
|
+
As you progress through the tests, take the time to refactor your
|
|
36
|
+
implementation for readability and expressiveness and then go on to the next
|
|
37
|
+
test.
|
|
38
|
+
|
|
39
|
+
Try to use standard C99 facilities in preference to writing your own
|
|
40
|
+
low-level algorithms or facilities by hand.
|
|
41
|
+
|
|
42
|
+
## Source
|
|
43
|
+
|
|
44
|
+
Wikipedia [https://en.wikipedia.org/wiki/Pangram](https://en.wikipedia.org/wiki/Pangram)
|
|
45
|
+
|
|
46
|
+
## Submitting Incomplete Solutions
|
|
47
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|