a-z和0-9组成的3位字符密码,请列出可能的所有组合在控制台输出。(java代码实现)

百度2013年校园招聘笔试题。(java方向)... 百度2013年校园招聘笔试题。(java方向) 展开
 我来答
icetea1989
2012-10-15
知道答主
回答量:25
采纳率:0%
帮助的人:14.2万
展开全部
贴一个代码给你,没写全,能表达意思
package snippet;
import java.util.*;
public class Sort {
static int count = 0;
static char[] buf = { '1', '2', '3', '4' ,'5','6','7','8','9','0','a','b'};
static List<String> list = new ArrayList<String>();

public static void main(String[] args) { select(buf, list, 3);
for (String str : list) {
System.out.println(str);
}

System.out.println("In total: " + count); }
public static void select(char[] source, List<String> arrayList,
int num) {
int l = source.length;

char[] temp = new char[num];
System.arraycopy(source, 0, temp, 0, num);
arrayList.add(new String(temp));
for (int i = num; i < l; i++) {
for (int j = 0; j < num; j++) {
char tempChar = temp[j];
temp[j] = source[i];

arrayList.add(new String(temp));
temp[j] = tempChar;
}
}
}

public static void perm(char[] buf, int start, int end) {
if (start == end) {// 当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可
for (int i = 0; i <= end; i++) {
System.out.print(buf[i]);
}
Sort.count++;
System.out.println();
} else {// 多个字母全排列
for (int i = start; i <= end; i++) {
char temp = buf[start];// 交换数组第一个元素与后续的元素
buf[start] = buf[i];
buf[i] = temp;

perm(buf, start + 1, end);// 后续元素递归全排列
temp = buf[start];// 将交换后的数组还原
buf[start] = buf[i];
buf[i] = temp;
}
}
}
}
向志红1234
2012-10-13 · 超过30用户采纳过TA的回答
知道答主
回答量:127
采纳率:100%
帮助的人:74万
展开全部
我在这里只给出关键的代码:
a-z在计算机中可以用ascill码代替,你可以用数字代替,比如,将a-z表示为数字97-122
for(int i=1; i<=36; i++){
for(int j=1; j<=36 ;j++){

for(int k=1; k<=36 ;k++)

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-10-13
展开全部
楼上的、你写三层循环我感觉没意思,如果还考虑顺序的话,你要写多少循环、不知道可有更好的方法 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ppdaishu47
2012-10-13 · 超过12用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:37.2万
展开全部
还真没有什么好办法,虽然是循环,但是没有一点多余的代码,每个循环都有输出的必要:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式