hdu 2074 叠框
http://acm.hdu.edu.cn/showproblem.php?pid=2074
這道題目以前做過的,用調(diào)用函數(shù)將map一圈一圈的畫,我覺得這個很容易理解先畫最外面的一圈,直到x>y,也就是中間那個畫完,可是注意有兩點:1.注意當(dāng)n=1的時候輸去第一個,2.注意輸出的格式,最后沒有空行,我PE好多次,原來是把put("")寫成了puts(" "),然后我把它改為printf("\n");就ac了,悲劇的一題啊
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
char map[80][80],a[2][3];
void ?mmm(int x,int y,int k)
{
?? ? ?if(x>y) return;
?? ? ?for(int i=x;i<=y;++i)
?? ? ?map[i][x]=map[x][i]=map[i][y]=map[y][i]=a[k%2][0];
?? ? ?mmm(x+1,y-1,k+1);
}//一圈一圈的畫,遞歸
int main()
{
?? ?int n,flag=0;
?? ?while(scanf("%d",&n)!=EOF)
?? ?{?
?? ? ? ? if(flag>0)
?? ? ? ? printf("\n");
?? ? ? ? flag++;
?? ? ? ? memset(map,0,sizeof(map));
?? ? ? ? scanf("%s%s",a[0],a[1]);
?? ? ? ? if(n==1) ?{puts(a[0]);continue;}
?? ? ? ? if(((n+1)/2)%2)?
?? ? ? ? mmm(0,n-1,0);
?? ? ? ? else
?? ? ? ? mmm(0,n-1,1);?
?? ? ? ? map[0][n-1]=map[0][0]=map[n-1][0]=map[n-1][n-1]=' ';
?? ? ? ? for(int i=0;i<n;++i)
?? ? ? ? {
?? ? ? ? ? ? ? ? puts(map[i]);
?? ? ? ? }?
?? ?}
?? // system("pause");
?? ?return 0;
}
轉(zhuǎn)載于:https://www.cnblogs.com/yuelingzhi/archive/2011/08/07/2130142.html
總結(jié)
以上是生活随笔為你收集整理的hdu 2074 叠框的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: equals 与==的不同
- 下一篇: flash,flex,actionscr