데이터 구조입니다 무엇 MOOC 1.1

例1 printN 

#INCLUDE <cstdio> // 무효 PrintN (INT의 N) {// // 대 (INT I = 1; i가 <= N; I ++) {// //의 printf ( "% D \ 없음 "I); //} // // 것은 반환; } // 무효 PrintN (INT의 N) { (N) 경우에 { PrintN (N - 1); 의 printf ( "% D \ 없음", N); } 반환; } INT의 main () { INT 않음; scanf와 ( "%의 D", N); PrintN (N); 0을 반환; }

  

예 2 : 다항식

시간을 실행하면 그 진드기가 그것을 사용 시간이하는 방법을 보여줍니다, 틱보다 적은? (즉, 프로그램 실행 시간 미만의 눈금을 측정하는 방법?)

측정 된 총 횟수 카운트 클럭 간격은 각 실행에 대해 계산 된 평균의 마지막 측정 된 시간 함수 충분히 길게되도록 기능 시험을 실행하기 위해 다수 회 반복된다하자

// F (X) = A0 + ... + AN-A1X + + 1 × ANX ^. ^ 1-N-N- 

#INCLUDE <cstdio> 
#INCLUDE <ctime이> 
#INCLUDE <cmath> 
#DEFINE MAXN 10 // 최대 다항식 용어 계수, 즉, 다항식의 차수 +1 
#DEFINE 반복의 최대 수 maxk 1E7 // 테스트 함수 호출 

더블 F1을 (N-INT 더블 A [] 더블 X) 
더블 F2 (N-INT 더블 A [] 더블 X) ; 
무효 시간 (더블 (* F2) (INT 않음 더블 A [ ] 더블 X)) 

로 더블 [MAXN]; // 저장된 다항식 계수 

무효 시간 (더블 (* F2) (INT 않음 더블 A [ ] 더블 X가)) 
{ 
	clock_t는 시작, 정지, 
	더블 DURATION, 
	시작 = 클럭 (); 
	/ * 함수를 반복적으로 호출 클럭 재생되는 점의 충분한 수를 구하는 * / 
	대 (INT I = 0; I <maxk, I는 ++) 
	{ 
		F2 (MAXN - 1, A, 1.1.) 
	} 
	STOP = 클럭 (); 
	// 번의 실행에서 시간의 함수를 계산
	시간 = ((더블) (정지 - 시작)) / CLK_TCK / MAXK; 
	인 printf ((배) (정지 "= F % \ 없음 틱"시작 -)); 
	의 printf ( "지속 기간 = 6.2e % \ 없음", 길이); 
} 

이중 F1 (INT 않음은 [] 더블 X 배) 
{ 
	이중 p = A [0]; 
	경우 (; 나는 = <N; I = 1 값 int I ++) 
	{ 
		P + = (A [i]는 * POW (X, ⅰ)); 
	} 
	페이지를 반환; 
} 

이중 F2 (INT 않음은 [] 더블 더블 X) 
{ 
	두 쪽 = A [N]; 
	- 위해 (I; I> 0 I = N INT) 
	{ 
		p는 [I - 1] + = X * P를; 
	} 
	페이지를 반환; 
} 

INT의 main () 
{ 
	INT (I = 0; I는를 <MAXN; I ++)에 대해 
	{ 
		A [I] = (더블) I; 
	}
	
	시간 (F2); 
	
	0을 반환; 
} 

/ * 
틱 = 1813.000000 
기간 = 1.81e-007 

틱 = 297.000000 
기간 = 2.97e-008 
* /

  

추천

출처www.cnblogs.com/mjn1/p/11419658.html