mirror of https://github.com/01-edu/public.git
feat(armstrong_number): new optional exercise for rust piscine
This commit is contained in:
parent
efe4184715
commit
fefb4e0782
|
@ -0,0 +1,49 @@
|
||||||
|
## armstrong_number
|
||||||
|
|
||||||
|
### Instructions
|
||||||
|
|
||||||
|
Create a function which checks if the number is a valid Armstrong number. The function will return the number if it is a valid one and `None` otherwise.
|
||||||
|
|
||||||
|
An Armstrong number is a number where the sum of its own digits each raised to the power of the number of digits is equal to itself.
|
||||||
|
|
||||||
|
As an example 153 is an Armstrong number because:
|
||||||
|
`153 = 1^3 + 5^3 + 3^3`
|
||||||
|
|
||||||
|
### Expected Function
|
||||||
|
|
||||||
|
```rust
|
||||||
|
pub fn is_armstrong_number(nb: u32) -> Option<u32> {
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
Here is a possible program to test your function,
|
||||||
|
|
||||||
|
```rust
|
||||||
|
fn main() {
|
||||||
|
println!("{:?}", is_armstrong_number(0));
|
||||||
|
println!("{:?}", is_armstrong_number(1));
|
||||||
|
println!("{:?}", is_armstrong_number(153));
|
||||||
|
println!("{:?}", is_armstrong_number(370));
|
||||||
|
println!("{:?}", is_armstrong_number(371));
|
||||||
|
println!("{:?}", is_armstrong_number(407));
|
||||||
|
println!("{:?}", is_armstrong_number(400));
|
||||||
|
println!("{:?}", is_armstrong_number(198));
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
And its output:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ cargo run
|
||||||
|
Some(0)
|
||||||
|
Some(1)
|
||||||
|
Some(153)
|
||||||
|
Some(370)
|
||||||
|
Some(371)
|
||||||
|
Some(407)
|
||||||
|
None
|
||||||
|
None
|
||||||
|
$
|
||||||
|
```
|
Loading…
Reference in New Issue