作者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://webptt.com/cn.aspx?n=bbs/Programming/M.1478792208.A.EFC.html
1F:推 braverycloud: 无关程式语言 1.161.89.81 11/11 00:14
2F:推 braverycloud: 延续你程式逻辑,把数值全印再分成 1.161.89.81 11/11 00:17
3F:→ braverycloud: Array。 1.161.89.81 11/11 00:17
4F:→ braverycloud: 然後再用1~9各个数值去比对 1.161.89.81 11/11 00:18
5F:→ braverycloud: 比如用1去比 16182379...比到第3个 1.161.89.81 11/11 00:19
6F:→ braverycloud: 回传TRUE,代表此值要删掉 1.161.89.81 11/11 00:19
7F:→ braverycloud: 以此类推 1.161.89.81 11/11 00:20
8F:→ braverycloud: 解法不唯一(供参考) 1.161.89.81 11/11 00:21
9F:推 nsc: leetcode?用数学方法解的话会很快… 1.163.180.140 11/11 00:47
10F:→ nsc: 题目里也有题示可以用 backtracking 1.163.180.140 11/11 00:48
11F:→ MOONRAKER: 为啥要三个array 218.161.46.90 11/11 01:13
12F:→ MOONRAKER: 一个array就够用了 了不起两个 218.161.46.90 11/11 01:14