게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 재귀함수 수정 혹은 아이디어 좀 부탁드립니다..
게시물ID : programmer_6901짧은주소 복사하기
작성자 : 복전곰탱이
추천 : 0
조회수 : 565회
댓글수 : 3개
등록시간 : 2014/12/03 09:00:38
옵션
  • 베스트금지
  • 본인삭제금지
제가 하려고 하는거는 
1 1 1 1 1
1 1 1 1 2
1 1 1 1 3
1 1 1 1 4
1 1 1 2 0 
1 1 1 2 2
1 1 1 2 3
1 1 1 2 4
1 1 1 3 0
1 1 1 3 3
.......
4 4 0 0 0 
4 4 4 0 0
4 4 4 4 0
4 4 4 4 4

이런식으로 만들고 싶은데..

1 1 1 1 1
1 1 1 1 2
1 1 1 1 3
1 1 1 1 4
1 1 1 2 0
1 1 1 2 1
1 1 1 2 2

..... 이런식으로 만들어 지긴 했는데.. 이 다음에 어떻게 수정해야할지 감이 안잡힙니다..ㅠ
제가 만든 재귀함수는 아래와 같습니다..
입력은 
4
1 2 3 4
5
입니다.


import java.util.Scanner;
public class first2 {

static int n = 0;
static int value = 0;
static int count = 0;
static int k = 0;
static int[] array;

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

n = input.nextInt();

int q = Integer.MAX_VALUE;
int p = 0;
int[] coin = new int[n+1];
int[] coin1 = new int[n];
for(int i = 0 ; i < n; i++)
coin1[i] = input.nextInt();

for(int i = 1 ; i < n+1; i++) {
for(int j = 0; j < n; j++)
if(q > coin1[j]) {
q = coin1[j];
p = j;
}
coin[i] = q;
coin1[p] = Integer.MAX_VALUE;
q = Integer.MAX_VALUE;
}
coin[0] = 0;

n = input.nextInt();

if(n/coin[1] == 0) {
System.out.print("0");
System.exit(0);
}
array = new int[n/coin[1]];
back1(coin, array.length-1, 0);
}

public static void back1(int[] coin, int point, int i) {
for(int j=0; j < array.length; j++) {
for(int p = 0 ; p < array.length; p++)
System.out.print(array[p] + " ");
System.out.println();

array[point]++;
for(int q = array.length-1; q > 0; q--) {
if(array[q] == coin.length) {
array[q] = 0;
array[q-1]++;
}
}
}
if(array[0] < coin.length)
back1(coin, point, i);
}
}

입니다..

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호