Java 怎么使用递归或者循环输出数字 1 到 5 的所有可能性组合?
发布网友
发布时间:2022-05-12 20:52
我来回答
共2个回答
热心网友
时间:2023-10-22 10:15
private static final int DEFAULT_MAX=5;
private static final int DEFAULT_SORT_SIZE=5;
public static void main(String[] args) {
int numbers[]={1,2,3,4,5};
for(int i=1;i<=DEFAULT_SORT_SIZE;i++){
com(numbers, i);
}
}
static void com(int numbers[],int m){
int n=numbers.length;
if(m>n) return;
int temp[]=new int[10],i,k=0;
for(i=0;i<m;i++) temp[i]=-1;
temp[k]=0;
// 核心算法
while(true){
if(temp[k]>=n)
{
if(k==0) break;
--k;
temp[k]+=1;
}
else if(k==m-1)
{
for(int j=0;j<m;j++) System.out.print(numbers[temp[j]]+" ");
System.out.println();
temp[k]+=1;
}
else{
++k;
temp[k]=temp[k-1]+1;
}
}
}
热心网友
时间:2023-10-22 10:16
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#define MAX 6
/*
将数字1,2,3,4,5的组合全部输出,每个数字仅能出现一次
*/
void DFS(int *output, int val, int pos, bool *isSelected)
{
if(isSelected[val]) // if this number is exist, return
return ;
output[pos] = val;
isSelected[val] = true; // save the scene
if(pos == MAX-2)
{
for(int i=0; i<MAX-1; i++)
printf("%d ", output[i]);
printf("/n");
isSelected[val] = false; // recover the scene, one way to end this DFS function
return ;
}
for(int i=1; i <MAX; i++)
{
DFS(output, i, pos+1, isSelected);
}
isSelected[val] = false; // recover the scene, another way to end this DFS function
}
int main()
{
bool isSelected[MAX];
int output[MAX];
for(int i=1; i<MAX; i++)
{
memset(isSelected, false, sizeof(isSelected));
DFS(output, i, 0, isSelected);
}
system("pause");
return 0;
}
使用java编程输出abcdefg的所有组合,即像abcdefg,abcdegf,abcdfeg等...
static int num = 0;//这个数是用来测试程序是否正确的.因为是求排列所以abcdefg的排列情况应该有7的阶乘那么多种就是5040种.public static void main(String[] args) { permute("abcdefg".toCharArray());System.out.println(num);} public static void permute(char[] cs) { permute(cs, 0, ...
...abcde必须出现,12345可以重复出现 java程序怎么写
用递归来做吧。public class CombinationUtil { public static void main(String[] args) { outResults("", 0, 5, 0);System.out.println("组合结果数:" + cnt);} public static final char[] letter = {'a', 'b', 'c', 'd', 'e'};public static final char[] number = {'1'...
java实现数组的所有组合
细节上需要改进。import java.util.*;public class Map { Vector<int[]> v = new Vector<int[]>();Vector<Integer> vv = new Vector<Integer>(); Map() { int[] array = { 1, 2, 3, 4, 5 };Scanner s = new Scanner(System.in);int x = s.nextInt();pro(array, 0, x);...
Java中,怎么打印出一个字符串的所有排列?
在Java中,生成一个字符串的所有可能排列可以通过递归算法轻松实现。核心步骤是将字符串分为两部分:首字符和剩余字符,然后对首字符与剩余部分中的每个字符进行依次交换,并对剩余部分进行递归操作。这样,每次递归都会生成一个新的排列组合。下面是通过Java代码展示的实现过程:首先,创建一个名为printPermut...
用java循环解答 1,2,3,5,8,13,21,34,55··· 请该收帮忙
输入对应的位置,得到对应的斐波那契的值 如:传入参数5 返回8 用递归实现:public int test(int i){ if(i<0) return 0;if(i<2) return 1;return test1(i-1)+test1(i-2);} 用迭代实现:public int test2(int i){ int first=1;int second=1;if(i==0||i==1)return 1;for...
用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的...
package org.quzz.baidu;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class AppandDigitToString { / 给一个字符串的后面扩展多个1位数字,形成多个字符串的列表。要求:“4”不能在第三位,“3”与“5”不能相连。param string 被扩展的字符串。param digit...
Java实现几个字母的所有组合
1.先给你程序 public class Test{ public static void main(String[] args) { char buf[]={'a','b','c','d'};perm(buf,0,buf.length-1);} public static void perm(char[] buf,int start,int end){ if(start==end){//当只要求对数组中一个字母进行全排列时,只要就按该数组输出...
java 定义了5个数字的数组,显示输出所有的排列组合
java.util.ArrayList;import java.util.List;public class PermAComb { static List<int[]> allSorts = new ArrayList<int[]>(); public static void permutation(int[] nums, int start, int end) { if (start == end) { // 当只要求对数组中一个数字进行全排列时,只要就按...
有一串数字1,1,2,3,5,8,13,21,34,55,在java中根据规律如何打印出来这...
public static void main(String[] args) { System.out.print(1+",");System.out.print(1+",");int f1 = 1, f2 = 1, f, M=10;for(int i=3; i<=M; i++) { f = f2;f2 = f1 + f2;f1 = f;System.out.print(f2+",");} } } 你要的是一道菲波拉契数列问题,你可以...
编写一个Java程序 用1、2、3、4这四个数组成一个四位数,要求每位不能...
方法1:public class PaiLie {// 对一组数字进行全排列 public static void main(String[] args) { int a[] = new int[5];for (int i = 1; i < a.length; i++)a[i] = i;pailie(a, 1);} public static void pailie(int[] a, int n) {// n 待交换数的索引 if (n <...