作者mikemagic88 (Mikemagic88)
看板Programming
標題[問題] 1-9位數不重複印出來
時間Thu Nov 10 23:36:45 2016
使用者輸入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