看板 Programming 關於我們 聯絡資訊
使用者輸入1 印1-9 使用者輸入2 印1-98 (11, 22, 33等重複的不印) 使用者輸入3 印1-987 (121, 988, 667等有重複的不印) -- 由於有規定至多是9位數 所以我直接1-9位數一個一個解 例: 輸入3就建三個array 彼此互相比較 相同(條件一條一條寫)就不印 最後有寫出來但是程式碼一大串 最近有想到另一種方式寫(語言是java) 但是還是卡住 方法如下: int counter = 0; int i = Integer.parseint(scanner.nextline()); //使用者輸入的數字 while(Integer.toString(counter).length() <= i){ //從1位數開始到使用者指定的長度為止 msg(Integer.toString(counter)); counter++; //印出來然後一直加 } //while() 這只是先印出全部, 我是想把數字拆成Array String[] num ; num = Integer.toString(counter).split(""); 然後要比較num這個array裡全部的數字 有重複就不印 但是不會寫 不知道有沒有人可以詳細的解說一下 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.191.199 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1478792208.A.EFC.html
braverycloud: 無關程式語言 1.161.89.81 11/11 00:14
braverycloud: 延續你程式邏輯,把數值全印再分成 1.161.89.81 11/11 00:17
braverycloud: Array。 1.161.89.81 11/11 00:17
braverycloud: 然後再用1~9各個數值去比對 1.161.89.81 11/11 00:18
braverycloud: 比如用1去比 16182379...比到第3個 1.161.89.81 11/11 00:19
braverycloud: 回傳TRUE,代表此值要刪掉 1.161.89.81 11/11 00:19
braverycloud: 以此類推 1.161.89.81 11/11 00:20
braverycloud: 解法不唯一(供參考) 1.161.89.81 11/11 00:21
nsc: leetcode?用數學方法解的話會很快… 1.163.180.140 11/11 00:47
nsc: 題目裡也有題示可以用 backtracking 1.163.180.140 11/11 00:48
MOONRAKER: 為啥要三個array 218.161.46.90 11/11 01:13
MOONRAKER: 一個array就夠用了 了不起兩個 218.161.46.90 11/11 01:14