n보 계단이 있는데 한 번에 한 걸음 또는 두 걸음만 올라갈 수 있습니다. 모두 몇 가지 걸음걸이가 있습니까?

4299 단어

차례로 실현되다

public static long OneStepOrTwoStepSolution(int num) {
	if(num == 1 || num ==2) {
		return num;
	}
	return OneStepOrTwoStepSolution(num-1)+OneStepOrTwoStepSolution(num-2);
 }

반복 실현

public static long OneStepOrTwoStepSolution1(int num) {
	long one = 2;
	long two = 1;
	if(num == 1 || num ==2) {
		return num;
		long sum = 0L;
	for(int i = 3 ; i <= num ;i++) {
		sum = one + two;
		two = one;
		one = sum;
	}
	return sum;
}

테스트


두 가지 방식으로 각각 n=5, n=50으로 테스트하였는데 결과는 다음과 같다.
  • n = 5: 귀속 – 실현 결과: 8 귀속 – 사용 시간: <1ms 교체 – 실현 결과: 8 교체 – 사용 시간: <1ms
  • n=50 귀속 – 실현 결과: 2036501074 귀속 – 사용 시간: 38940ms 교체 – 실현 결과: 2036501074 교체 – 사용 시간: <1ms

  • 테스트 결과: n이 끊임없이 증가함에 따라 귀속 시간은 교체를 훨씬 초과한다

    요약:

  • 귀속:
  • 장점: 큰 문제가 작은 문제로 바뀌면 코드의 양을 줄일 수 있고 코드가 간소화되고 가독성이 좋다
  • 단점: 귀속 호출은 공간을 낭비하고 귀속이 너무 깊어서 창고의 넘침을 초래하기 쉽다

  • 교체
  • 장점: 코드 운행 효율이 좋다. 시간은 순환 횟수가 증가함에 따라 증가하고 추가 공간 비용이 없기 때문이다
  • 단점: 코드는 귀속이 간결하지 않고 가독성이 좋다

  • 좋은 웹페이지 즐겨찾기