Petit Coding 144

몇 가지 간단한 math 함수 사용하기

1. abs 함수 원형 int abs(int num); 기능 : num 의 절대값을 구하여 리턴한다. 헤더 : math.h , stdlib.h 예) 1 : #include 2 : #include 3 : 4 : void main(){ 5 : int a, b; 6 : a = -4; 7 : b = -4; 8 : printf("a = %d, b = %d\n", a, b); 9 : 10 : printf("a = %d, b = %d\n", a, abs(b)); 11 : } 결과) 비슷한 기능을 가진 함수로는 fabs, labs 등이 있다. 2. ceil 함수 원형 double ceil(double num); 기능 : num의 소숫점 자리를 올림하여 리턴한다 헤더 : math.h 예) 1 : #include 2 : ..

Backend/C 2012.04.12

Dynamic Programming

* Matrix Chain Multiplication(행렬 체인 곱) -행렬 곱 문제를 해결하는 알고리즘 -괄호 묶는 방법의 수 세기 Step 1 : The Struct of an Optimal Parenthesization ( 최적 괄호 묶기의 구조) 최적 부분 구조를 찾은 뒤, 부분 문제에 대한 최적해를 그 문제에 대한 최적해를 구성하는 데 사용. -A[i]A[i+1]......A[j]의 곱 A[i...j] 를 계산할 경우,(A[i] 는 행렬), 이들의 괄호 묶는 방법의 결과는 어떤 정수 k(i

Backend/C 2012.04.12

최대 공약수 구하기

유클리드 호제법 1. 두 정수 m, n(m>n)이 있을 때, m과 n의 최대공약수는 m-n과 n의 최대공약수와 같다. ⓐm과 n이 틀리면 다음을 반복한다. ⓑm>n이면 m=m-n, 아니면 n=n-m이다. ⓒm또는 n이 구하고자 하는 최대공약수이다. #include int main(void) { int a, b, m, n; printf("Insert 2 numbers: "); scanf("%d %d" , &a, &b); m = a; n=b; while(m!=n){ if(m>n) m= m-n; else n=n-m; } printf("최대공약수 : %d\n", m); return 0; } 2. m과 n의 차이가 클 경우 뺄셈(m-n) 대신에 나머지(m%n)을 이용하는 방법 #include int main(vo..

Backend/C 2012.04.12

자료 표현

1. 수치 자료 표현 1) 팩 10진 (Packed Decimal)연산 = 4비트를 가지고 10진수 한 자리를 표현하며 10진수 2자리를 1Byte로 나타낸다. = 오른쪽 4비트는 부호 비트로 사용된다. = 남는 자리는 10진수 '0' 으로 채워진다 = 산술 연산이 가능하다. 2) 언팩 10진(Unpacked Decimal)연산 = 존 형식이라 부르기도 한다 = 하나의 수를 표현하기 위해 8비트가 필요하다 = 왼쪽 4비트는 부호 비트로 사용된다( 양수 : C , 음수 : D) = 산술 연산 형식은 부적당하다. = 남는 자리에는 'F0' 으로 채워진다. 3) 고정 소수점 표현 = 컴퓨터 시스템에서 양수와 음수의 정보를 나타낼 경우 최상의 비트를 부호 비트로 두어 결정 = 최상위 비트가 양수일 경우 0, 음..

Backend/OS★ 2012.04.12

수치 연산 함수 사용하기

수치 연산 함수 사용하기 1 : #include 2 : #include 3 : void main() 4 : { 5 : double x; 6 : printf("Enter a number: "); 7 : scanf("%lf", &x); 8 : printf("\n\nOriginal value : %lf", x); 9 : printf("\nCeil : %lf", ceil(x)); //전달된 인수보다 작지 않은 범위 내에서 최소의 정수값을 돌려준다 10 : printf("\nFloor : %lf.", floor(x)); // 전달된 인수보다 크지 않은 범위내에서 최대의 정수값을 돌려준다 11 : if(x >= 0) 12 : printf("\nSquare root : %lf", sqrt(x)); // 전달된 인수의..

Backend/C 2012.04.12

검색과 정렬

1. bsearch()를 이용한 검색 void *bsearch(void *key, void *base, size_t num, size_t width, int(*cmp)(void *element1, void *element2)) key : 검색하기 원하는 데이터 항목에 대한 포인터 base : 검색을 수행할 배열의 첫 번째 요소에 대한 포인터 num : 배열에 있는 요소의 수 width : 바이트 단위로 표현되는 각 요소의 크기 size_t : sizeof()연산자가 돌려주는 데이터형을 뜻하는 것으로 unsigned형 cmp : 비교 함수에 대한 포인터 2. qsort()를 사용한 정렬 void qsort(void *base, size_t num, size_t size, int (*cmp)(void *el..

Backend/C 2012.04.12
반응형