just play, and further for hanoi
-
#include "stdio.h"
-
-
void PrintFloor(int floor)
-
{
-
int i,j;
-
for(i = 0; i < floor; i++)
-
{
-
for(j = 0; j < floor-1-i; j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i*2+1; j++)
-
{
-
printf("*");
-
}
-
printf("\n");
-
}
-
}
-
-
void PrintFloorBetter(int floor)
-
{
-
int i,j;
-
for(i = 0; i < floor; i++)
-
{
-
for(j = 0; j < floor-1-i; j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1; j++)
-
{
-
printf("* ");
-
}
-
printf("\n");
-
}
-
}
-
-
void PrintDoubleFloorBetter(int floor, int interval)
-
{
-
int i,j;
-
interval += sizeof("* ")*floor;
-
for(i = 0; i < floor; i++)
-
{
-
for(j = 0; j < floor-1-i; j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1; j++)
-
{
-
printf("* ");
-
}
-
for(j = 0; j < interval - i*2; j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1; j++)
-
{
-
printf("* ");
-
}
-
-
printf("\n");
-
}
-
}
-
-
void PrintTripleFloorBetter(int floor, int interval)
-
{
-
int i,j;
-
interval += sizeof("* ")*floor;
-
for(i = 0; i < floor; i++)
-
{
-
for(j = 0; j < floor-1-i; j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1; j++)
-
{
-
printf("* ");
-
}
-
for(j = 0; j < interval - i*2; j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1; j++)
-
{
-
printf("* ");
-
}
-
for(j = 0; j < interval - i*2; j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1; j++)
-
{
-
printf("* ");
-
}
-
-
printf("\n");
-
}
-
}
-
-
int GetTripleMax(int *a)
-
{
-
int i;
-
int iRet = *a;
-
for(i=1; i < 3; i++)
-
{
-
if(*(a+i) > iRet)
-
iRet = *(a+i);
-
}
-
return iRet;
-
}
-
void PrintTripleFloorControl(int *floor, int interval)
-
{
-
int i,j;
-
int space[2];
-
int top = GetTripleMax(floor+1);
-
-
interval += sizeof("* ")*floor[1];
-
printf("top:%d\n",top);
-
for(i = 0; i < *floor; i++)
-
{
-
if(i < *floor - top)
-
{
-
printf("\n");
-
continue;
-
}
-
for(j = 0; j < floor[1]-1-i+(*floor-top); j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1-(*floor-top); j++)
-
{
-
printf("* ");
-
}
-
for(j = 0; j < interval - i*2; j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1-(*floor-top); j++)
-
{
-
printf("* ");
-
}
-
for(j = 0; j < interval - i*2; j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1-(*floor-top); j++)
-
{
-
printf("* ");
-
}
-
-
printf("\n");
-
}
-
}
-
-
void PrintFloorTripleControl(int *floor, int interval)
-
{
-
int i,j;
-
int space[2];
-
int tmpInterval;
-
int top = GetTripleMax(floor+1);
-
-
printf("top:%d\n",top);
-
for(i = 0; i < *floor; i++)
-
{
-
if(i < *floor - top)
-
{
-
printf("\n");
-
continue;
-
}
-
for(j = 0; j < floor[1]-1-i+(floor[0]-floor[1]); j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1-(floor[0]-floor[1]); j++)
-
{
-
printf("* ");
-
}
-
tmpInterval = floor[1] - (i+1-(floor[0]-floor[1]));
-
tmpInterval += floor[2] - (i+1-(floor[0]-floor[2]));
-
tmpInterval += interval;
-
for(j = 0; j < tmpInterval; j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1-(floor[0]-floor[2]); j++)
-
{
-
printf("* ");
-
}
-
tmpInterval = floor[2] - (i+1-(floor[0]-floor[2]));
-
tmpInterval += floor[3] - (i+1-(floor[0]-floor[3]));
-
tmpInterval += interval;
-
for(j = 0; j < tmpInterval; j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1-(floor[0]-floor[3]); j++)
-
{
-
printf("* ");
-
}
-
-
printf("\n");
-
}
-
}
-
-
void PrintFloorTripleControlBetter(int *floor, int interval)
-
{
-
int i,j;
-
int space[2];
-
int tmpInterval;
-
int top = GetTripleMax(floor+1);
-
-
printf("top:%d\n",top);
-
for(i = 0; i < *floor; i++)
-
{
-
if(i < *floor - top)
-
{
-
printf("\n");
-
continue;
-
}
-
for(j = 0; j < floor[1]-1-i+(floor[0]-floor[1]); j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1-(floor[0]-floor[1]); j++)
-
{
-
printf("* ");
-
}
-
tmpInterval = floor[0] - (i+1-(floor[0]-floor[1]));
-
tmpInterval += floor[0] - (i+1-(floor[0]-floor[2]));
-
tmpInterval += interval;
-
for(j = 0; j < tmpInterval; j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1-(floor[0]-floor[2]); j++)
-
{
-
printf("* ");
-
}
-
tmpInterval = floor[0] - (i+1-(floor[0]-floor[2]));
-
tmpInterval += floor[0] - (i+1-(floor[0]-floor[3]));
-
tmpInterval += interval;
-
for(j = 0; j < tmpInterval; j++)
-
{
-
printf(" ");
-
}
-
for(j = 0; j < i+1-(floor[0]-floor[3]); j++)
-
{
-
printf("* ");
-
}
-
-
printf("\n");
-
}
-
}
-
int main(void)
-
{
-
int i,j;
-
int floor;
-
int control[4];
-
-
printf("input floors:\n");
-
scanf("%d",&floor);
-
printf("floors %d\n\n",floor);
-
-
PrintFloor(floor);
-
printf("\n");
-
PrintFloorBetter(floor);
-
printf("\n");
-
PrintDoubleFloorBetter(floor, 5);
-
printf("\n");
-
PrintTripleFloorBetter(floor, 5);
-
printf("\n");
-
control[0] = floor;
-
control[1] = floor-1;
-
control[2] = floor-1;
-
control[3] = floor-1;
-
PrintTripleFloorControl(control,5);
-
printf("\n");
-
#if 1
-
control[1] = floor-1;
-
control[2] = floor-4;
-
control[3] = floor-3;
-
#endif
-
#if 0
-
control[1] = floor-1;
-
control[2] = floor-1;
-
control[3] = floor-1;
-
#endif
-
PrintFloorTripleControlBetter(control,5);
-
return 0;
-
}
阅读(1139) | 评论(0) | 转发(0) |