Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
36
Task/Sierpinski-triangle/Rust/sierpinski-triangle.rust
Normal file
36
Task/Sierpinski-triangle/Rust/sierpinski-triangle.rust
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
use std::iter::repeat;
|
||||
|
||||
fn sierpinski(order: usize) {
|
||||
let mut triangle = vec!["*".to_string()];
|
||||
for i in 0..order {
|
||||
let space = repeat(' ').take(2_usize.pow(i as u32)).collect::<String>();
|
||||
|
||||
// save original state
|
||||
let mut d = triangle.clone();
|
||||
|
||||
// extend existing lines
|
||||
d.iter_mut().for_each(|r| {
|
||||
let new_row = format!("{}{}{}", space, r, space);
|
||||
*r = new_row;
|
||||
});
|
||||
|
||||
// add new lines
|
||||
triangle.iter().for_each(|r| {
|
||||
let new_row = format!("{}{}{}", r, " ", r);
|
||||
d.push(new_row);
|
||||
});
|
||||
|
||||
triangle = d;
|
||||
}
|
||||
|
||||
triangle.iter().for_each(|r| println!("{}", r));
|
||||
}
|
||||
fn main() {
|
||||
let order = std::env::args()
|
||||
.nth(1)
|
||||
.unwrap_or_else(|| "4".to_string())
|
||||
.parse::<usize>()
|
||||
.unwrap();
|
||||
|
||||
sierpinski(order);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue