본문 바로가기

Programming/Algorithm15

C언어 소수 구하는 프로그램 코드 소수란 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수이다. 예를 들어 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31,… 등은 모두 소수이다. 아마 소수를 구하는 방정식을 구하는 공식을 발견한다면 바로 수학계 최고 권위상인 필즈상을 수상할 수 있을 것이다.많은 수학자들이 소수를 구하기 위해 매달렸지만 너무 몰두한 나머지 정신분열이 일어난 사람도 있다고 한다. 다음은 c언어로 2부터(1은 소수가 아니므로) 100까지 수 중에서 소수를 출력하는 프로그램이다. #include int main(void){int i, j;for (i = 2; i 2018. 5. 19.
c언어 풍차(바람개비) 만들기 c언어를 배울 때 처음 나온 과제가 풍차(바람개비)만들기 였던 것 같다. 그런데 나는 한 1분도 안되서 풀었던 기억이 있다. 이쪽에 재능이 있나보다. 뭐 어찌됐든 풍차(바람개비)를 만들어보자 c언어는 절차지향 언어이기 때문에 콘솔에 풍차(별)를 찍을 때 위에서부터 찍어야한다.그리고 풍차의 날개가 4개니까 위에 2개, 아래에 2개를 배치한다고 하면 위에 2개부터 찍고 내려와서 아래 2개를 마저 찍어야한다.즉 콘솔창에서 풍차(바람개비) 날개를 왼쪽부터 2개 그린 후에 오른쪽에 2개를 그리는 행위는 불가능하다. 다음은 c언어로 구현한 풍차이다. 풍차 날개의 원하는 값을 한번 입력해보자. #include void make_star(int n); int main(void){ int n;printf("길이를 입력하.. 2018. 4. 26.
C언어 스택(STACK) 예제 스택(STACK) - 자료구조 스택(stack)은 모든 원소들의 삽입(insert)과 삭제(delete)가 리스트의 한쪽 끝에서만 수행되는 제한 조건을 가지는 선형 자료 구조(linear data structure)로서, 삽입과 삭제가 일어나는 리스트의 끝을 top이라 하고, 다른 한쪽 끝을 bottom이라 한다. 스택은 종종 pushdown stack이라고도 하는데, 스택의 top에 새로운 원소를 삽입하는 것을 push라 하고, 가장 최근에 삽입된 원소를 의미하는 스택의 top으로부터 한 원소를 제거하는 것을 pop이라 한다. 이와 같은 스택 연상은 항상 스택의 top에서 발생하므로 top 포인터의 값을 1씩 증가 또는 감소시킴으로써 수행된다. 큐가 FIFO(first int first out)이고 스.. 2018. 4. 25.
C언어 큐(QUEUE) 예제 큐(QUEUE) - 자료구조 리스트의 한쪽 끝에서만 삽입과 삭제가 일어나는 스택과는 달리 리스트의 한쪽 끝에서는 원소들이 삭제되고 반대쪽 끝에서는 원소들의 삽입만 가능하게 만든 순서화된 리스트. 가장 먼저 리스트에 삽입된 원소가 가장 먼저 삭제되므로 선입 선출인 FIFO(first in first out) 리스트라고 한다. 다음은 C언어로 크기가 5인 큐를 구현한 코드이다.대충 설명을 하면 크기가 5인 큐를 만들고 (메모리 할당을 하고) 초기화를 하고 데이터를 삽입(PUSH)하고 데이터를 추출(POP)하는 것이다.삽입 순서가 1 -> 2 -> 3 -> 4 -> 5 인 경우 출력 순서는 1 -> 2 -> 3 -> 4 -> 5 이다. 큐의 사용처는 가장 쉽게 볼 수 있는 곳이 프린트이다. 프린터가 출력하는 .. 2018. 4. 25.