본문 바로가기

IT/Algorithm

Algorithm: 프랙탈 그래픽(Fractal Graphic) 소용돌이 #include #include #include int x,y;int t = 100; void gotoxy(int x, int y);void delay(clock_t n);void left();void right();void up();void down(); void main(){int i,j;x = 15;y = 15;gotoxy(x,y);printf("A");delay(1000);for(i=1; i 더보기
Algorithm: 피보나치 수열(Fibonacci sequence) #include int fibonacci(int frq); void main(){int frq;int fibo; printf("몇회 진행 하시겠습니까? ");scanf("%d",&frq);fibo = fibonacci(frq);printf("%d\n",fibo);} int fibonacci(int frq){int i;int default_num1, default_num2, temp; default_num1 = 1;default_num2 = 1; for(i=0; i 더보기
Algorithm: 계승(Factorial) #include int fatorial(int num); void main(){int num;int ftr; scanf("%d",&num);ftr = fatorial(num);printf("%d\n",ftr);} int fatorial(int num){if(num == 0){return 1;}elsereturn num * fatorial(num-1);} 더보기
Algorithm: 큐(Queue) 동적 활당을 이용한 큐 #include #include void main(){int n,q,qsize;int num[100];int *queue;puts("How much do u want to have size of Q? ");scanf("%d",&qsize);queue = (int*)malloc(qsize); for(n=0; nname = name;temp->link = head;}else if(h->link !=head){while(h->link != head){h = h->link;}h->link = temp;temp->name = name;temp->link = head;}} void print_node(){node *temp;temp=head->link;while(temp->link != he.. 더보기
Algorithm: 이중 연결 리스트(Doubly linked list) #include #include typedef struct _dnode{int name;struct _dnode *pre_link;struct _dnode *nxt_link;}dnode; dnode *head;dnode *tail; void init();void ordered_insert(int name);void nexted_insert(int std_name, int nxt_name); void print_dnode();void del(int name);void modify(int std_name,int mod_name); void main(){init();ordered_insert(1);ordered_insert(2);ordered_insert(3);ordered_insert(4);ordered_i.. 더보기
Algorithm: 링크드리스트(Linked list) #include #include typedef struct _node {int name;struct _node *link;} node; node *head, *tail; void init();void odered_insert(int name);void nexted_insert(int k);void print_node();node* find(int name);void del(int name);void modify(int std_name,int mod_name); void main(){node *temp; init();odered_insert(1);odered_insert(2);odered_insert(3);odered_insert(4);odered_insert(5);modify(5,7);nexted_ins.. 더보기
Algorithm: 러시아 농부 곱셈법(a la russe) // Made by BAMU #include void main(){int num1,num2,num3; num3 = 0; printf("첫번째 수를 입력하세요:");scanf("%d",&num1);printf("두번째 수를 입력하세요:");scanf("%d",&num2); while( num1 != 1){if(num1%2 == 1){num3 = num3 + num2;} num1 = num1 / 2;num2 = num2 * 2;}num3 = num3 + num2; printf("두수의 곱은 %d 입니다.\n", num3); } [참고자료]http://ko.wikipedia.org/wiki/%EA%B3%A0%EB%8C%80_%EC%9D%B4%EC%A7%91%ED%8A%B8_%EA%B3%B1%EC%85%88%E.. 더보기
Algorithm: 요세푸스의 문제(Josephus Problem) // Made by BAMU #include void main(){ int person[100];int sum, n;int i,j,cnt1,cnt2;i = 0;j = 0;cnt1 = 0;cnt2 = 0; printf("총 몇명입니까?");scanf("%d",&sum);printf("몇 번째 사람을 처형 시키시겠습니가? ");scanf("%d",&n); for(i=1; i 더보기
Algorithm: 에라토스테네스의 체(Eratosthenes' Sieve) // Made by BAMU #include void main(){ int sieve[1001];int i;for(i=2;i 더보기
Algorithm: 유클리드 호제법(Euclidean Algorithm) 최대공약수 // Made by BAMU#include void main(){long int a,b,c,temp; printf("수를 입력하세요:");scanf("%ld",&a);printf("수를 입력하세요:");scanf("%ld",&b);if(b>a){temp = a;a = b;b = temp;} while(1){a = a%b;if(a == 0) break;b = b%a;if(b == 0) break;}printf("계산완료\n");if(a == 0) c = b;if(b == 0) c = a; printf("최대 공약수는 %ld 입니다.\n",c);} [참고자료] http://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9.. 더보기