...对于1~9这9个数字,任取n个数字,存放在二维数组ran
发布网友
发布时间:2024-02-12 22:40
我来回答
共1个回答
热心网友
时间:2024-09-28 03:30
没有C编译器,用java写了个,能跑
char_use的意思,是该数字是否采用:0-不采用,1-采用,当采用个数正好等于参数n时,表示这一组合是要放到返回数组中的。
循环结尾处:就是对一个九位数进行+1操作,当最后一位需要进位时,前一位+1,其实可以用for(i=0;i<512;i++),取二进制的9位,0-不采用,1-采用。然后1的数量是参数n的时候,将这个组合装入返回数组。
public class Test9 {
static int[][] return_arr(int n){
int size=1;
for(int i=1;i<=n;i++) size=size*(10-i)/i;
int[][] _array = new int[size][n];
int[] char_use = {0,0,0,0,0,0,0,0,0};
int char_use_sum;
int _array_row=0;
int _array_col;
while(char_use[0]<2) {
char_use_sum = 0;
for(int i=0;i<9;i++) char_use_sum+=char_use[i];
if(char_use_sum == n) {
_array_col = 0;
for(int i=1;i<10;i++) {
if(char_use[i-1] == 1) {
_array[_array_row][_array_col] = i;
_array_col++;
}
}
_array_row++;
}
for(int i=8;i>=0;i--){
if(i==0 || char_use[i]+1<2){
char_use[i]++;
break;
}else{
char_use[i]=0;
}
}
}
return _array;
}
public static void main(String[] args){
int[][] x= return_arr(2);
for(int i=0;i<x.length;i++) {
for(int j=0;j<2;j++) System.out.print(x[i][j]+",");
System.out.println();
}
}
}
热心网友
时间:2024-09-28 03:29
没有C编译器,用java写了个,能跑
char_use的意思,是该数字是否采用:0-不采用,1-采用,当采用个数正好等于参数n时,表示这一组合是要放到返回数组中的。
循环结尾处:就是对一个九位数进行+1操作,当最后一位需要进位时,前一位+1,其实可以用for(i=0;i<512;i++),取二进制的9位,0-不采用,1-采用。然后1的数量是参数n的时候,将这个组合装入返回数组。
public class Test9 {
static int[][] return_arr(int n){
int size=1;
for(int i=1;i<=n;i++) size=size*(10-i)/i;
int[][] _array = new int[size][n];
int[] char_use = {0,0,0,0,0,0,0,0,0};
int char_use_sum;
int _array_row=0;
int _array_col;
while(char_use[0]<2) {
char_use_sum = 0;
for(int i=0;i<9;i++) char_use_sum+=char_use[i];
if(char_use_sum == n) {
_array_col = 0;
for(int i=1;i<10;i++) {
if(char_use[i-1] == 1) {
_array[_array_row][_array_col] = i;
_array_col++;
}
}
_array_row++;
}
for(int i=8;i>=0;i--){
if(i==0 || char_use[i]+1<2){
char_use[i]++;
break;
}else{
char_use[i]=0;
}
}
}
return _array;
}
public static void main(String[] args){
int[][] x= return_arr(2);
for(int i=0;i<x.length;i++) {
for(int j=0;j<2;j++) System.out.print(x[i][j]+",");
System.out.println();
}
}
}
在vc6.0中,怎么用二维数组成生一组不重复的随机数0-9之间
你是不是想说2位随机数啊?那不要用二维数组,只要一维数组,有两个元素就可以了比如定义int a[2];然后a[0]=ran()%9;a[1]=ran()%9就得到你想要的数组了。下面是测试程序,你可以看一下。main(){ int a[2];int i;for(i=0;i<100;i++){ a[0]=rand()%9;a[1]=rand()%9;pr...
fortran中怎么定义动态数组?
使用ALLOCATABLE和ALLOCATE语句比如:INTEGER,ALLOCATABLE :: B(:)...ALLOCATE(B(N))ALLOCATE(B(N))给数组B指定了N维的空间。这两个语句一定要配合使用DEALLOCATE(B)可以解除上述定义的空间。1.基本使用:一维数组:datatype name (size)datatype: integer, real, complex, logical,或type自定义出来的...
用java如何判断扑克牌同花顺
"6"));//这里因为10是两位数且牌面里面用不到1,所以直接用1代替10String check = "234567891JQKA";boolean flage =true;//自定义比较器,用num在check里的下标大小作为比较依据排序Collections.sort(card, new Comparator<Object>() {@Overridepublic int compare(Object o1, ...
fortran中怎么定义动态数组
使用ALLOCATABLE和ALLOCATE语句比如:INTEGER,ALLOCATABLE :: B(:)...ALLOCATE(B(N))ALLOCATE(B(N))给数组B指定了N维的空间。这两个语句一定要配合使用DEALLOCATE(B)可以解除上述定义的空间。1.基本使用:一维数组:datatype name (size)datatype: integer, real, complex, logical,或type自定义出来的...