public class Zuhe {
public static void main(String[] args) {
String s = "12345";
//这里是要用到的所有数组成的一个字符串
char[] c = s.toCharArray();
new Zuhe().zuhe(c,c.length,0);
System.out.println("可能的组合数:"+y);
}
static int y=0;
private void zuhe(char[] array, int n, int k) {
if (n == k) {
String str = new String(array);
System.out.println(str);
++y;
}
{
for (int i = k; i < n; i++) {
swap(array, k, i);
zuhe(array, n, k + 1);
swap(array, i, k);
}
}
}
private void swap(char[] a, int x, int y) {
char temp = a[x];
a[x] = a[y];
a[y] = temp;
}
}
帮我把JAVA这代码改成控制台动态输入的,随便什么数字都能输,谢谢
答案:4 悬赏:10
解决时间 2021-12-29 10:08
- 提问者网友:喜遇你
- 2021-12-28 15:58
最佳答案
- 二级知识专家网友:疯山鬼
- 2021-12-28 16:37
只需要把:
String s = "12345";
换成
String s = new Scanner(System.in).next();
即可
String s = "12345";
换成
String s = new Scanner(System.in).next();
即可
全部回答
- 1楼网友:都不是誰的誰
- 2021-12-28 18:27
这个,呵呵,没有什么窍门的哦,只能用system.out.println();来一个个的输出了,空格你得把握好哦,还有换行、呵呵,没有什么难度,只是麻烦事啊!
- 2楼网友:浪女动了心
- 2021-12-28 17:57
你想要的是有多少种排列吧,及排列方式。。
你的输入中如果有重复数字,结果就和你想象的不一样了~
你想改成控制台手动输入么?加个 Scanner 控制台输入就行了。
- 3楼网友:猖狂的痴情人
- 2021-12-28 17:03
public class Zuhe {
public static void main(String[] args) {
System.out.println("请输入数字"); String s = new Scanner(System.in).nextLine();
//这里是要用到的所有数组成的一个字符串
char[] c = s.toCharArray();
new Zuhe().zuhe(c,c.length,0);
System.out.println("可能的组合数:"+y);
}
static int y=0;
private void zuhe(char[] array, int n, int k) {
if (n == k) {
String str = new String(array);
System.out.println(str);
++y;
}
{
for (int i = k; i < n; i++) {
swap(array, k, i);
zuhe(array, n, k + 1);
swap(array, i, k);
}
}
}
private void swap(char[] a, int x, int y) {
char temp = a[x];
a[x] = a[y];
a[y] = temp;
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯