귀속 중 x++ 또는++x를 사용하지 마십시오.

1217 단어 푸른다리 컵
아주 간단한 귀속 제목.
공원 입장료는 5각이다.가령 모든 관광객이 두 가지 화폐 가치의 화폐를 가지고 있다고 가정하면 5각, 1위안이다.다시 말하면 5각을 가진 사람은 m인이고 1원을 가진 사람은 n인이다.특수한 상황 때문에 처음에는 매표원이 거스름돈이 없었다.우리는 이 m+n명의 관광객이 어떤 순서로 표를 사면 순조롭게 표 구매 과정을 완성할 수 있는지 알고 싶다.분명히 m=n일 때, 어떤 경우도 안 된다.예를 들어 첫 번째 표를 산 승객은 1위안을 가지고 있다.이 m+n명의 관광객 모두가 순조롭게 표를 구매할 수 있는 서로 다른 상황의 조합 수를 계산해 주십시오.
주의: 5각과 1원이 교차하는 순서의 다른 배열에만 관심을 갖는다. 같은 화폐 가치를 가진 두 명의 관광객 교환 위치는 새로운 상황으로 계산되지 않는다.
개인은 알고리즘이 완전히 정확하다고 생각하지만 항상 정확한 결과를 실행할 수 없다.debug 변수를 보고 x+와++x의 원인을 발견했습니다.
package KeCheng2;

public class T7zuoye {
	/*
	 * m:0.5 
	 * n:1
	 * x: 0.5 
	 */
	static int f(int m,int n,int x){
		if(x==0) {
			m--;
			x++;
		}
		if(n==0) return 1;
		if(m==0&&n<=x) return 1;
		
		
		return f(m-1,n,x+1)+f(m,n-1,x-1);// ! x++ ++x
		
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(f(2,2,0));

	}

}
return f(m-1,n,x+1)+f(m,n-1,x-1);// ! x++ ++x

x++는 x의 값을 먼저 사용한 다음에++를 표시하기 때문이다.
그리고++x, 먼저 x+1 조작을 한 다음에 사용하면 뒤에 있는 두 번째 f의 x 수치에 영향을 줍니다!

좋은 웹페이지 즐겨찾기