当前位置: 代码迷 >> 综合 >> HDU 2074 叠筐
  详细解决方案

HDU 2074 叠筐

热度:52   发布时间:2023-12-26 10:45:07.0

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2074

说明: 这个就是字符串的处理,模拟题,好玩的一批,只要控制空格回车不同字符就可以了,循环printf(), 这种题目没有算法,就是仔细不仔细了,首先确定不同的情况,单独处理,相同的情况循环处理。

#include<stdio.h>  char map[100][100];  
int main()  
{  int n,i,j,mark;  char a,b,t,flag=0;  while(~scanf("%d %c %c",&n,&a,&b))  {  if(flag) putchar('\n');  flag=1;  if((n-1)%4)//判断哪个在最外面,这个是找规律   {  t=a;  a=b;  b=t;  }  t=a,mark=1;//t和mark的初始化   for(i=0;i<=n/2;i++)  {  t=a;  mark=1;  for(j=0;j<n;j++)  {  if(n!=1&&i==0&&(j==0||j==n-1))//注意n==1的时候  {  putchar(' ');  map[i][j]=' ';  continue;  }  map[i][j]=t;  putchar(t);  if(i>j||j>=(n-1)-i)//这也是找规律,什么时候要变   {  if(mark)//轮流变化  {  t=b;  mark=0;  }  else  {  t=a;  mark=1;  }  }  }  putchar('\n');  }  for(i=n/2-1;i>=0;i--)  {  for(j=0;j<n;j++)  {  printf("%c",map[i][j]);  }  putchar('\n');  }  }  return 0;  
}