Re: [問題] 1-9位數不重複印出來 (Rust)已刪文
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
12/10 12:00, 1F
→
12/10 12:01, , 2F
12/10 12:01, 2F
Programming 近期熱門文章
PTT數位生活區 即時熱門文章