본문 바로가기

IT

HASH2 // 이것도 뭔가 이상한데 그냥 올림

#include <stdio.h>

#include <math.h>

#include <string.h>

void Dec2Binary( unsigned __int64 nNum );


char *h1(char *arr)

{

char *k;

if(arr[0] == 'A')

k = "100";

else if(arr[0] == 'B')

k = "101";

else if(arr[0] == 'C')

k = "110";

return k;

}


char *h2(char *arr)

{

char *k;

if(arr[1] == '0')

k = "000";

else if(arr[1] == '1')

k = "001";

else if(arr[1] == '2')

k = "010";

else if(arr[1] == '3')

k = "011";

else if(arr[1] == '4')

k = "100";

else if(arr[1] == '5')

k = "101";

else if(arr[1] == '6')

k = "110";

else if(arr[1] == '7')

k = "111";

return k;

}


int p1(char *arr)

{

if(arr[2] - '0' == 0 )

return 0;

else if(arr[2] - '0' == 1 )

return 1;

}


int p2(char *arr)

{

if(arr[1] - '0' == 0 )

return 0;

else if(arr[1] - '0' == 1 )

return 2;

}


int p3(char *arr)

{

if(arr[0] - '0' == 0 )

return 0;

else if(arr[0] - '0' == 1 )

return 4;

}


int p4(char *arr)

{

if(arr[2] - '0' == 0 )

return 0;

else if(arr[2] - '0' == 1 )

return 8;

}


int p5(char *arr)

{

if(arr[1] - '0' == 0 )

return 0;

else if(arr[1] - '0' == 1 )

return 16;

}


void main()

{

int i;

char *temp1 = '\0',*temp2 = '\0';

char arr[24][8]= {

"A0","A1","A2","A3","A4","A5","A6","A7",

"B0","B1","B2","B3","B4","B5","B6","B7",

"C0","C1","C2","C3","C4","C5","C6","C7"};

printf("k   h(k)    p=1  2   3   4   5\n");

for(i=0; i<24;i++)

{

temp1 = h1(arr[i]);

temp2 = h2(arr[i]);

printf("%s %s %s %3d %3d %3d %3d %3d\n", arr[i], temp1, temp2, p1(temp2), p1(temp2)+p2(temp2), p1(temp2)+p2(temp2)+p3(temp2), p1(temp2)+p2(temp2)+p3(temp2)+p4(temp1), p1(temp2)+p2(temp2)+p3(temp2)+p4(temp1)+p5(temp1));

}




}