본문 바로가기
728x90
반응형

C언어9

C프로그램 숫자 반대로 출력하기.. 123456 -> 654321 배열이나 문자열을 사용하지 않고 산술연산만을 이용하여 입력된 숫자가 역으로 출력되게 하는 프로그램이다. 0123456 -> 654321 맨앞 0은 표시 하지 않게 한다.. 일반적인 1234 -> 4321로 표현하는 것~! #include int rev(int input){ int n,cnt=0,cnt1=0,sum=0,k=1; n = input; while(input>0){ input = input/10; cnt++; } cnt1 = cnt; while(cnt1>1){ k = k*10; cnt1--; } while(n>0){ sum =sum+((n%10)*k); n = n/10; k=k/10; } printf("%d",sum); return 0; } void main(){ int x,sss; scanf(".. 2010. 10. 15.
퀵 소팅 알고리즘 void quick_sort(int list[], int left, int right) { if(left1 4->2 8->3 … n->log2n 각 패스안에서의 비교횟수: n 총비교횟수: n log2n 총이동횟수: 비교횟수에 비하여 무시가능 2010. 10. 15.
쉘정렬 알고리즘 시간 복잡도 // gap 만큼 떨어진 요소들을 삽입 정렬 // 정렬의 범위는 first에서 last inc_insertion_sort(int list[], int first, int last, int gap) { int i, j, key; for(i=first+gap; i=first && key0; gap = gap/2 ) { if( (gap%2) == 0 ) gap++; for(i=0;i 2010. 10. 15.
합병 정렬 알고리즘 merge(list, left, mid, last): // 2개의 인접한 배열 list[left..mid]와 list[mid+1..right]를 합병 b1←left; e1←mid; b2←mid+1; e2←right; sorted 배열을 생성; index←0; while b1≤e1 and b2≤e2 do if(list[b1] 2010. 10. 15.
c언어 최대공약수 / 최소공배수 지식에서 답변을 달다가 심심해서 하나 올리네요~ ㅎㅎ #include void main() { int input1,input2,temp; int gcd=1,lcm; // gcd : 최대공약수, lcm : 최소공배수 printf("정수 2개를 입력하세요\n"); scanf("%d %d",&input1,&input2); lcm = input1*input2; if(input1>input2) { temp = input1; input1 = input2; input2 = temp; } while(gcd!=0) { gcd = input1%input2; input1=input2; input2=gcd; } lcm = lcm/input1; printf("최대공약수는 %d",input1); printf("최소공배수는 %d".. 2010. 10. 15.
팩토리얼 재귀함수로 구현하기 #include int factorial(int n) { if( n 2009. 10. 19.
피보나치 수열 함수로 구현하기 fib_iter(int n) { if( n < 2 ) return n; else { int i, tmp, current=1, last=0; for(i=2;i 2009. 10. 19.
하노이탑 함수로 구현하기 #include void hanoi_tower(int n, char a, char b, char c) { if( n==1 ) printf("%c -> %c\n",a,c); else { hanoi_tower(n-1, a, c, b); printf("%c -> %c\n",a, c); hanoi_tower(n-1, b, a, c); } } void main() { int x; scanf("%d",&x); hanoi_tower(x, '1', '2', '3'); } 하노이 탑을 구현한것입니다... 흠~!! 그냥 대충 보셔도 아시겠죠??? 간단하게 하노이탑은 a b c 가 있으면 갯수에 따라서 a --->> c로 가는 것입니다. 일종에 b는 임시버퍼라고 생각을 하시면 쉬울꺼 같네요~~~ 그럼 1인경우는 할께 없으니.. 2009. 10. 19.
입력한 숫자 역으로 출력하기.. 배열이나 문자열을 사용하지 않고 산술연산만을 이용하여 입력된 숫자가 역으로 출력되게 하는 프로그램이다. 0123456 -> 654321 맨앞 0은 표시 하지 않게 한다.. 일반적인 1234 -> 4321로 표현하는 것~! #include int rev(int input){ int n,cnt=0,cnt1=0,sum=0,k=1; n = input; while(input>0){ input = input/10; cnt++; } cnt1 = cnt; while(cnt1>1){ k = k*10; cnt1--; } while(n>0){ sum =sum+((n%10)*k); n = n/10; k=k/10; } printf("%d",sum); return 0; } void main(){ int x,sss; scanf(".. 2009. 10. 19.
728x90
반응형