Re: [問題] 1-9位數不重複印出來 (Rust)已刪文

看板Programming作者 (Neisseria)時間8年前 (2016/12/06 23:41), 8年前編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
Rust 的版本,板上似乎還沒人貼 寫得很長,不太優雅,請多包涵 use std::io; use std::io::Write; use std::process; use std::collections::HashSet; fn main() { print!("Input a number: "); let _ = io::stdout().flush(); let mut input = String::new(); io::stdin() .read_line(&mut input) .expect("failed to read from stdin"); let n = match input.trim().parse::<u32>() { Ok(i) => i, Err(_) => { println!("Invalid integer"); process::exit(1); } }; let x: i32 = 10; let mut count = 1; for i in 1..(x.pow(n)) { if count % 10 == 0 { println!(""); } let num_string = i.to_string(); let mut chars = num_string.chars(); let mut hash = HashSet::new(); let mut c = chars.next(); while c != None { hash.insert(c); c = chars.next(); } let mut digit = 0; let mut j = i; while j > 0 { j = j / 10; digit += 1; } let passed = hash.len() as i32 >= digit; if passed { print!("{} ", i); count += 1; } } println!(""); } 話說 Rust 真的很難搞,常常得和 Rust 的編譯器弄好久 Orz 沒有必要的話,還是乖乖寫 Perl/Python/Ruby 之流比較省事 ※ 引述《mikemagic88 (Mikemagic88)》之銘言: : 使用者輸入1 印1-9 : 使用者輸入2 印1-98 (11, 22, 33等重複的不印) : 使用者輸入3 印1-987 (121, 988, 667等有重複的不印) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.180.193.126 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1481038869.A.C98.html ※ 編輯: Neisseria (175.180.193.126), 12/06/2016 23:41:20 ※ 編輯: Neisseria (175.180.193.126), 12/06/2016 23:44:09

12/10 12:00, , 1F
本來想寫,想起來regex要用library就懶
12/10 12:00, 1F

12/10 12:01, , 2F
了orz
12/10 12:01, 2F
文章代碼(AID): #1OHjmLoO (Programming)
文章代碼(AID): #1OHjmLoO (Programming)