如何产生所有的数字序列。 比如1 2 3结果:1 2 31 3 22 1 32 3 13 1 23 2 1 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void perm (int [] source, int [] result, int index) { for (int i = 0; i < source.length; i ++) { for (int j = 0; j < index; j++) { if (source[i] == result[j]) continue; break; } result[index] = source[i]; break; } if (index == source.length -1) return; perm(source, result, index+1);}int[] source = {1, 2, 3};int[] result = new int[3];perm(source, result, 0);没调试过,大概是不对的吧。。 全排列!大致也就那么三种方法吧!我昨天刚看到的帖子,挺不错的。http://bbs.csdn.net/topics/390562085希望对你有帮助 以前写过一个 送你了http://blog.csdn.net/zqfddqr/article/details/8574339 是不是比较麻烦。我开始以为是一个简单的问题....不是很麻烦,我到网上帮你找了一个,你看看#include <stdio.h>#include <string.h>char string[]="123456789a";int used[10]={0};char output[10];int length;void Fun(int d){ int i; for(i=0;i<=length;i++) { if(!used[i]) { used[i]=1; output[d]=string[i]; if(d==length) { for(d=0;d<length;d++) { if(output[d]=='a') printf("10 "); else printf("%c ",output[d]); } if(output[length]=='a') printf("10\n"); else printf("%c\n",output[length]); } else Fun(d+1); used[i]=0; } }}int main(){ int n; scanf("%d",&n); string[n]=0; length=strlen(string)-1; Fun(0); return 0;} 随意几个数,只要输入就可以了。public class Test4 { public static void main(String[] args) { String test = "123"; char[] chars = test.toCharArray(); allSort(chars, 0, chars.length - 1); } private static StringBuilder TEMP = new StringBuilder(); public static void allSort(char[] buf, int start, int end) { if (start == end) { for (int i = 0; i <= end; i++) { TEMP.append(buf[i]); } numberChecker(); } else { for (int i = start; i <= end; i++) { char temp = buf[start]; buf[start] = buf[i]; buf[i] = temp; allSort(buf, start + 1, end); temp = buf[start]; buf[start] = buf[i]; buf[i] = temp; } } } private static void numberChecker() { System.out.println(TEMP); TEMP.replace(0, TEMP.length(), ""); }} 关于死锁不是很理解 初学者 请求帮助 变量声明方式 急,急:请帮我看一下---为何这个程序不能实现?先谢谢了! 出现了个奇怪的问题!关于Robot的!! 菜鸟提问,JAVA程序运行问题 applet连接SQL SERVER失败 有没有象vc,delphi等一样的开发工具? 数据模型设计?????? Jbuilder5中的jTable简单问题,20分!!! 求教高手点拨“一个3W行代码工程量的Login”步骤的错误排查的经验。 电脑是怎么显示正常时间的呢
for (int i = 0; i < source.length; i ++) {
for (int j = 0; j < index; j++) {
if (source[i] == result[j])
continue;
break;
}
result[index] = source[i];
break;
}
if (index == source.length -1)
return;
perm(source, result, index+1);
}int[] source = {1, 2, 3};
int[] result = new int[3];
perm(source, result, 0);没调试过,大概是不对的吧。。
我昨天刚看到的帖子,挺不错的。
http://bbs.csdn.net/topics/390562085
希望对你有帮助
我开始以为是一个简单的问题....
不是很麻烦,我到网上帮你找了一个,你看看#include <stdio.h>
#include <string.h>char string[]="123456789a";
int used[10]={0};
char output[10];
int length;void Fun(int d)
{
int i;
for(i=0;i<=length;i++)
{
if(!used[i])
{
used[i]=1;
output[d]=string[i];
if(d==length)
{
for(d=0;d<length;d++)
{
if(output[d]=='a')
printf("10 ");
else printf("%c ",output[d]);
}
if(output[length]=='a')
printf("10\n");
else
printf("%c\n",output[length]);
}
else
Fun(d+1);
used[i]=0;
}
}
}int main()
{
int n;
scanf("%d",&n); string[n]=0;
length=strlen(string)-1; Fun(0); return 0;
}
public static void main(String[] args) {
String test = "123";
char[] chars = test.toCharArray();
allSort(chars, 0, chars.length - 1);
}
private static StringBuilder TEMP = new StringBuilder();
public static void allSort(char[] buf, int start, int end) {
if (start == end) {
for (int i = 0; i <= end; i++) {
TEMP.append(buf[i]);
}
numberChecker();
} else {
for (int i = start; i <= end; i++) {
char temp = buf[start];
buf[start] = buf[i];
buf[i] = temp;
allSort(buf, start + 1, end);
temp = buf[start];
buf[start] = buf[i];
buf[i] = temp;
}
}
}
private static void numberChecker() {
System.out.println(TEMP);
TEMP.replace(0, TEMP.length(), "");
}
}