뭐...
떱밥 일 수도 있지만...
어차피 심심풀이로 들어 오는 오유에서 이정도 떱밥은 물어 주는 것이 예의죠...
땜쟁이의 옛추억을 살려서 카르노맵을 적용 해 봤습니다..ㅎㅎ
----------------------------------------------------------------------
P.S
결국 언어학자님의 요건을 충족 시킬려면 if문이나 함수를 사용하지 않고
좌우 대칭적 루프문을 만들어야 하는 것이 관건인 것 같네요...
물론 printf("%c", ... )를 허용한다면 1개의 for문으로 구현을 할 수도 있지만...
(직관력을 요하는 카르노맵 보다는 Quine-McCluskey 알고리즘을 사용한다면 불가능하지는 않습니다.)
그렇지 않다면 대칭적 루프문을 만드는 방법은 연산식으로 abs() 함수를 구현하는 것 밖에 없지 않을까 싶네요...
연산식에 의한 abs()함수가 만들어지면 갯수에도 크게 제한을 받지 않을 것 같구요...
암튼 뒷부분에 연산식에 의한 abs()를 추가 해 봤습니다.
문제 자체는 황당하지만 다른 분들의 댓글처럼 재미있는 아이디어들이 많이 나오는 것 같아서
그것을 살펴 보는 재미가 쏠쏠하네요...^^;
(물론 뒷목을 잡으시는 분들도 계시지만...ㅎㅎ)
//-------------------------------------------------------------------
// Karnaugh map 버젼
//-------------------------------------------------------------------
int main()
{
int LP01;
int LP02;
for(LP01=0;LP01<5;LP01++)
{
for(LP02=0;LP02<((((~LP01&0x00000002)&&(~LP01&0x00000001))<<1)|(LP01&0x00000001));LP02++)
{
printf(" ");
}
for(LP02=0;LP02<(5-(((((~LP01&0x00000002)&&(~LP01&0x00000001))<<1)|(LP01&0x00000001))<<1));LP02++)
{
printf("*");
}
for(LP02=0;LP02<((((~LP01&0x00000002)&&(~LP01&0x00000001))<<1)|(LP01&0x00000001));LP02++)
{
printf(" ");
}
printf("\n");
}
return 0;
}
//-------------------------------------------------------------------
// 연산식에 의한 abs()대용 수식버젼
// abs()함수 대용수식 : ((LP01-((LP01&0x80000000)>>31)) ^ (((LP01&0x80000000)>>31)*0xFFFFFFFF))
//-------------------------------------------------------------------
void DrawLine(int iNum);
int main(void)
{
DrawLine(20);
return(0);
}
void DrawLine(int iNum)
{
int LP01,LP02;
for(LP01=iNum*-1;LP01<=iNum;LP01++)
{
for(LP02=0;LP02<((LP01-((LP01&0x80000000)>>31)) ^ (((LP01&0x80000000)>>31)*0xFFFFFFFF)); LP02++)
{
printf("#");
}
for(LP02=0;LP02<( ((iNum<<1)+1) - (((LP01-((LP01&0x80000000)>>31)) ^ (((LP01&0x80000000)>>31)*0xFFFFFFFF))<<1)); LP02++)
{
printf("*");
}
for(LP02=0;LP02<((LP01-((LP01&0x80000000)>>31)) ^ (((LP01&0x80000000)>>31)*0xFFFFFFFF)); LP02++)
{
printf("$");
}
printf("\n");
}
}
---[ OUTPUT ]-----------------------------------------
####################*$$$$$$$$$$$$$$$$$$$$ ###################***$$$$$$$$$$$$$$$$$$$ ##################*****$$$$$$$$$$$$$$$$$$ #################*******$$$$$$$$$$$$$$$$$ ################*********$$$$$$$$$$$$$$$$ ###############***********$$$$$$$$$$$$$$$ ##############*************$$$$$$$$$$$$$$ #############***************$$$$$$$$$$$$$ ############*****************$$$$$$$$$$$$ ###########*******************$$$$$$$$$$$ ##########*********************$$$$$$$$$$ #########***********************$$$$$$$$$ ########*************************$$$$$$$$ #######***************************$$$$$$$ ######*****************************$$$$$$ #####*******************************$$$$$ ####*********************************$$$$ ###***********************************$$$ ##*************************************$$ #***************************************$ ***************************************** #***************************************$ ##*************************************$$ ###***********************************$$$ ####*********************************$$$$ #####*******************************$$$$$ ######*****************************$$$$$$ #######***************************$$$$$$$ ########*************************$$$$$$$$ #########***********************$$$$$$$$$ ##########*********************$$$$$$$$$$ ###########*******************$$$$$$$$$$$ ############*****************$$$$$$$$$$$$ #############***************$$$$$$$$$$$$$ ##############*************$$$$$$$$$$$$$$ ###############***********$$$$$$$$$$$$$$$ ################*********$$$$$$$$$$$$$$$$ #################*******$$$$$$$$$$$$$$$$$ ##################*****$$$$$$$$$$$$$$$$$$ ###################***$$$$$$$$$$$$$$$$$$$ ####################*$$$$$$$$$$$$$$$$$$$$