쉬운걸 엄청 고민했다. 수정 할 부분이 어딘지 찾고 있다.

구글 검색으로 4줄안에 끝나는 소스도 있어서 많이 좌절했었다.


#include <stdio.h>


unsigned char HexNonZeroCount(unsigned int n);


int main()

{

printf("HexNonZeroCount = %d\n",HexNonZeroCount(1026));

return 0;

}


unsigned char HexNonZeroCount(unsigned int n)

{

unsigned char nCount = NULL;

unsigned char ucHexParsed[4]={};


ucHexParsed[0]=n&0xFF;

ucHexParsed[1]=n>>=8&0xFF;

ucHexParsed[2]=n>>=8&0xFF;

ucHexParsed[3]=n>>=8&0xFF;


for(int i=0; i<4; i++)

{

if(ucHexParsed[i])

{

int j;

for(j=0; ucHexParsed[i]!=0; j++)

{

ucHexParsed[i]&=ucHexParsed[i]>>1;

}

nCount+=j;

}

}

return nCount;

}

/*
 sum smallNum to bigNum
       */

#include <stdio.h>

int sum(int small, int big)
{
 if(small==big)
  return big;
 else
  return sum(small+1, big) + small;
}

int main()
{
 printf("input small Num\n");
 int smallNum;
 scanf("%d", &smallNum);
 printf("input big Num\n");
 int bigNum;
 scanf("%d", &bigNum);

 int result;
 result = sum(smallNum, bigNum);
 
 printf("sum smallNum to bigNum = %d\n", result);

 return 0;
}

#include <stdio.h>

int sum(int n)
{
 if(n==1)
  return 1;
 else
  return sum(n-1) + n;
}

int main()
{
 printf("input Num\n");
 int input;
 scanf("%d", &input);
 
 int result = sum(input); 
 printf("%d\n", result);

 return 0;
}

 

/*
 recursive function binary search
    */

void inputData(int nDataStart, int nDataSize, int* data);
void showArray(int* data, int nArraySize);
int binarySearch(int* data, int nKey, int nLeft, int nRight);

#include <stdio.h>
int main()
{
 printf("Input Data Start Number\n");
 int nDataStart=0;
 scanf("%d", &nDataStart);
 
 printf("Input Data Size\n");
 int nDataSize=0;
 scanf("%d", &nDataSize);
 
 int* data = new int[nDataSize];
 
 inputData(nDataStart, nDataSize, data);
 
 showArray(data, nDataSize);
 
 printf("Input Key Number\n");
 int nKey=0;
 scanf("%d", &nKey);

 int nIndex=binarySearch(data, nKey, 0, nDataSize);
 
 printf("index = %d\n", nIndex);

 return 0;

}

void inputData(int nDataStart, int nDataSize, int* data)
{
 int nCount=0;
 for(int i=nDataStart; i<nDataStart+nDataSize; i++)
 {
  data[nCount]=i;
  nCount++;
 }
}

void showArray(int* data, int nArraySize)
{
 for(int i=0; i<nArraySize; i++)
 {
  printf("Array -%d = %d\n",i,data[i]);
 }
}

int binarySearch(int* data, int nKey, int nLeft, int nRight)
{
 if(nLeft<=nRight)
 {
  int mid=(nLeft + nRight)/2;
  if(data[mid]==nKey)
   return mid;
  else if(data[mid]<nKey)
   return binarySearch(data, nKey, mid+1, nRight);
  else
   return binarySearch(data, nKey, nLeft, mid-1);
 }
}

'프로그래밍 > 기본 알고리즘' 카테고리의 다른 글

recursive sum - 재귀 합 정렬 N to M  (0) 2014.04.29
recursive sum - 재귀 합  (0) 2014.04.29
insertion sort - 삽입 정렬  (0) 2014.04.29
두 값 중 가장 큰 값 찾기  (0) 2014.04.29
Fibonacci - 피보나치  (0) 2014.04.29

#include <stdio.h>

int main()
{
 printf("Input Array Size\n");
 int arraySize;
 scanf("%d", &arraySize);
 int* array = new int[arraySize];
 int i;
 for(i=0; i<arraySize; i++)
 {
  printf("Input Value\n");
  scanf("%d", &array[i]);
 }

 int key, j;
 for(i=1; i<arraySize; i++)
 {
  key = array[i];
  j=i-1;
  while(j>=0&&array[j]>key)
  {
   array[j+1]=array[j];
   j--;
  }
  array[j+1]=key;
 }
 
 for(i=0; i<arraySize; i++)
  printf("array[%d] = %d\n", i, array[i]);

 return 0;
}

'프로그래밍 > 기본 알고리즘' 카테고리의 다른 글

recursive sum - 재귀 합  (0) 2014.04.29
recursive function binary search - 재귀 이진 정렬  (0) 2014.04.29
두 값 중 가장 큰 값 찾기  (0) 2014.04.29
Fibonacci - 피보나치  (0) 2014.04.29
factorial  (0) 2014.04.29

#include <stdio.h>

int main()
{
 int i;
 int value[10] = {7,5,4,3,6,8,9,0,1,2};

 int temp;
 for(i=0; i<10; i++)
 {
  if(value[i]<value[i+1])
  {
   temp = value[i];
   value[i] = value[i+1];
   value[i+1] = temp;
  }
 }
 
 printf("Max Value is End of the Array[9] = %d\n", value[9]);

 return 0;
}

'프로그래밍 > 기본 알고리즘' 카테고리의 다른 글

recursive sum - 재귀 합  (0) 2014.04.29
recursive function binary search - 재귀 이진 정렬  (0) 2014.04.29
insertion sort - 삽입 정렬  (0) 2014.04.29
Fibonacci - 피보나치  (0) 2014.04.29
factorial  (0) 2014.04.29

+ Recent posts