mirror of
https://github.com/Xevion/exercism.git
synced 2025-12-06 03:15:01 -06:00
add bash/clojure/java unworked problem sets
This commit is contained in:
1
clojure/armstrong-numbers/.exercism/metadata.json
Normal file
1
clojure/armstrong-numbers/.exercism/metadata.json
Normal file
@@ -0,0 +1 @@
|
||||
{"track":"clojure","exercise":"armstrong-numbers","id":"1f1f7ae1eefc49a68f16bd4c78df74b5","url":"https://exercism.io/my/solutions/1f1f7ae1eefc49a68f16bd4c78df74b5","handle":"Xevion","is_requester":true,"auto_approve":false}
|
||||
18
clojure/armstrong-numbers/README.md
Normal file
18
clojure/armstrong-numbers/README.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# Armstrong Numbers
|
||||
|
||||
An [Armstrong number](https://en.wikipedia.org/wiki/Narcissistic_number) is a number that is the sum of its own digits each raised to the power of the number of digits.
|
||||
|
||||
For example:
|
||||
|
||||
- 9 is an Armstrong number, because `9 = 9^1 = 9`
|
||||
- 10 is *not* an Armstrong number, because `10 != 1^2 + 0^2 = 1`
|
||||
- 153 is an Armstrong number, because: `153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153`
|
||||
- 154 is *not* an Armstrong number, because: `154 != 1^3 + 5^3 + 4^3 = 1 + 125 + 64 = 190`
|
||||
|
||||
Write some code to determine whether a number is an Armstrong number.
|
||||
## Source
|
||||
|
||||
Wikipedia [https://en.wikipedia.org/wiki/Narcissistic_number](https://en.wikipedia.org/wiki/Narcissistic_number)
|
||||
|
||||
## Submitting Incomplete Solutions
|
||||
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
||||
5
clojure/armstrong-numbers/project.clj
Normal file
5
clojure/armstrong-numbers/project.clj
Normal file
@@ -0,0 +1,5 @@
|
||||
(defproject armstrong-numbers "0.1.0-SNAPSHOT"
|
||||
:description "armstrong-numbers exercise"
|
||||
:url "https://github.com/exercism/clojure/tree/master/exercises/armstrong-numbers"
|
||||
:dependencies [[org.clojure/clojure "1.10.0"]]
|
||||
:main armstrong-numbers/-main)
|
||||
18
clojure/armstrong-numbers/src/armstrong_numbers.clj
Normal file
18
clojure/armstrong-numbers/src/armstrong_numbers.clj
Normal file
@@ -0,0 +1,18 @@
|
||||
(ns armstrong-numbers)
|
||||
|
||||
; (defn armstrong? [num]
|
||||
; (let [x (clojure.string/split (str num) #"")
|
||||
; x (mapv read-string x)
|
||||
; x (mapv #(* % %) x)
|
||||
; ]
|
||||
; (
|
||||
; (prn x)
|
||||
; )
|
||||
; )
|
||||
; )
|
||||
|
||||
(defn armstrong? [num] "ye")
|
||||
|
||||
(defn main [& args]
|
||||
(armstrong? 9119)
|
||||
)
|
||||
39
clojure/armstrong-numbers/test/armstrong_numbers_test.clj
Normal file
39
clojure/armstrong-numbers/test/armstrong_numbers_test.clj
Normal file
@@ -0,0 +1,39 @@
|
||||
(ns armstrong-numbers-test
|
||||
(:require [clojure.test :refer [deftest is testing]]
|
||||
[armstrong-numbers :refer [armstrong?]]))
|
||||
|
||||
(deftest armstrong-number-5
|
||||
(testing "Single digit numbers are Armstrong numbers"
|
||||
(is (armstrong? 5))))
|
||||
|
||||
(deftest not-armstrong-number-10
|
||||
(testing "There are no 2 digit Armstrong numbers"
|
||||
(is (not (armstrong? 10)))))
|
||||
|
||||
(deftest armstrong-number-153
|
||||
(testing "Three digit number that is an Armstrong number"
|
||||
(is (armstrong? 153))))
|
||||
|
||||
(deftest not-armstrong-number-100
|
||||
(testing "Three digit number that is not an Armstrong number"
|
||||
(is (not (armstrong? 100)))))
|
||||
|
||||
(deftest armstrong-number-9474
|
||||
(testing "Four digit number that is an Armstrong number"
|
||||
(is (armstrong? 9474))))
|
||||
|
||||
(deftest not-armstrong-number-9475
|
||||
(testing "Four digit number that is not an Armstrong number"
|
||||
(is (not (armstrong? 9475)))))
|
||||
|
||||
(deftest armstrong-number-9926315
|
||||
(testing "Seven digit number that is an Armstrong number"
|
||||
(is (armstrong? 9926315))))
|
||||
|
||||
(deftest not-armstrong-number-9926314
|
||||
(testing "Seven digit number that is not an Armstrong number"
|
||||
(is (not (armstrong? 9926314)))))
|
||||
|
||||
(deftest armstrong-number-21897142587612075
|
||||
(testing "Seventeen digit number that is an Armstrong number"
|
||||
(is (armstrong? 21897142587612075))))
|
||||
1
clojure/hello-world/.exercism/metadata.json
Normal file
1
clojure/hello-world/.exercism/metadata.json
Normal file
@@ -0,0 +1 @@
|
||||
{"track":"clojure","exercise":"hello-world","id":"e94ec082bcbb430c9e70fe15c3af8c61","url":"https://exercism.io/my/solutions/e94ec082bcbb430c9e70fe15c3af8c61","handle":"Xevion","is_requester":true,"auto_approve":true}
|
||||
51
clojure/hello-world/README.md
Normal file
51
clojure/hello-world/README.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Hello World
|
||||
|
||||
The classical introductory exercise. Just say "Hello, World!".
|
||||
|
||||
["Hello, World!"](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program) is
|
||||
the traditional first program for beginning programming in a new language
|
||||
or environment.
|
||||
|
||||
The objectives are simple:
|
||||
|
||||
- Write a function that returns the string "Hello, World!".
|
||||
- Run the test suite and make sure that it succeeds.
|
||||
- Submit your solution and check it at the website.
|
||||
|
||||
If everything goes well, you will be ready to fetch your first real exercise.
|
||||
|
||||
### Project Structure
|
||||
|
||||
Clojure exercises in exercism use [leiningen](http://leiningen.org/) to configure and run your code
|
||||
and use [leiningen standard directory structure](https://github.com/technomancy/leiningen/blob/master/doc/TUTORIAL.md#directory-layout).
|
||||
|
||||
You will find a test file named `hello_world_test.clj` inside `test` directory.
|
||||
Write your code in `src/hello_world.clj`. It should use the namespace `hello-world` so that tests can pick it up.
|
||||
|
||||
### Running tests
|
||||
|
||||
Run the tests using `lein test` command and make them pass:
|
||||
|
||||
```
|
||||
$ lein test
|
||||
|
||||
lein test hello-world-test
|
||||
|
||||
Ran 1 tests containing 1 assertions.
|
||||
0 failures, 0 errors.
|
||||
```
|
||||
|
||||
Then submit the exercise using:
|
||||
|
||||
```
|
||||
$ exercism submit src/hello_world.clj
|
||||
```
|
||||
|
||||
For more detailed instructions and learning resources refer [exercism's clojure language page](http://exercism.io/languages/clojure).
|
||||
|
||||
## Source
|
||||
|
||||
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)
|
||||
|
||||
## Submitting Incomplete Solutions
|
||||
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
||||
4
clojure/hello-world/project.clj
Normal file
4
clojure/hello-world/project.clj
Normal file
@@ -0,0 +1,4 @@
|
||||
(defproject hello-world "0.1.0-SNAPSHOT"
|
||||
:description "hello-world exercise."
|
||||
:url "https://github.com/exercism/clojure/tree/master/exercises/hello-world"
|
||||
:dependencies [[org.clojure/clojure "1.10.0"]])
|
||||
3
clojure/hello-world/src/hello_world.clj
Normal file
3
clojure/hello-world/src/hello_world.clj
Normal file
@@ -0,0 +1,3 @@
|
||||
(ns hello-world)
|
||||
|
||||
(defn hello [] "Hello, World!")
|
||||
6
clojure/hello-world/test/hello_world_test.clj
Normal file
6
clojure/hello-world/test/hello_world_test.clj
Normal file
@@ -0,0 +1,6 @@
|
||||
(ns hello-world-test
|
||||
(:require [clojure.test :refer [deftest is]]
|
||||
hello-world))
|
||||
|
||||
(deftest hello-world-test
|
||||
(is (= "Hello, World!" (hello-world/hello))))
|
||||
Reference in New Issue
Block a user