[問題] 1-9位數不重複印出來

看板Programming作者 (Mikemagic88)時間7年前 (2016/11/10 23:36), 編輯推噓3(309)
留言12則, 3人參與, 最新討論串1/6 (看更多)
使用者輸入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

11/11 00:14, , 1F
無關程式語言
11/11 00:14, 1F

11/11 00:17, , 2F
延續你程式邏輯,把數值全印再分成
11/11 00:17, 2F

11/11 00:17, , 3F
Array。
11/11 00:17, 3F

11/11 00:18, , 4F
然後再用1~9各個數值去比對
11/11 00:18, 4F

11/11 00:19, , 5F
比如用1去比 16182379...比到第3個
11/11 00:19, 5F

11/11 00:19, , 6F
回傳TRUE,代表此值要刪掉
11/11 00:19, 6F

11/11 00:20, , 7F
以此類推
11/11 00:20, 7F

11/11 00:21, , 8F
解法不唯一(供參考)
11/11 00:21, 8F

11/11 00:47, , 9F
leetcode?用數學方法解的話會很快…
11/11 00:47, 9F

11/11 00:48, , 10F
題目裡也有題示可以用 backtracking
11/11 00:48, 10F

11/11 01:13, , 11F
為啥要三個array
11/11 01:13, 11F

11/11 01:14, , 12F
一個array就夠用了 了不起兩個
11/11 01:14, 12F
文章代碼(AID): #1O99GGxy (Programming)
討論串 (同標題文章)
文章代碼(AID): #1O99GGxy (Programming)