ACM(畫圖)(華為杯_山東理工)
阿新 • • 發佈:2019-01-23
如圖所示:
____ /\ | |\ /| /__\ | | \ / | / \ | | \ / | / \ |____ | \/ |
要你利用一點規律進行模擬畫出來。
其實規律很好找,也不太難,關鍵在於細心和耐心。
這個題畫圖裡面比較有代表性的:
所以作為例題寫一下部落格:
#include<bits/stdc++.h> using namespace std; char a[1005][1005]; int main() { int n; scanf("%d",&n); int len=(n*2-1)+2+(n+1)+2+(2+2*n)+1; //printf("%d\n",len); for(int i=0;i<=n;i++){ for(int j=0;j<len;j++){ if(i==0&&j>n*2+2+n){ a[i][j]='\0'; }else if((i==0||i==n)&&(n*2+2<j&&j<=n*2+2+n)){ a[i][j]='_'; }else if(j==n-i&&i){ a[i][j]='/'; }else if((j==n+i-1)&&i){ a[i][j]='\\'; }else if(j<n+n/2-1&&j>n-n/2&&i==n/2){ a[i][j]='_'; }else if(j==n*2+2&&i){ a[i][j]='|'; }else if(j==(n*3+5)&&i){ a[i][j]='|'; }else if(j==(n*5+6)&&i){ a[i][j]='|'; }else if(j==n*3+5+i&&i){ a[i][j]='\\'; }else if(j==n*5+6-i&&i){ a[i][j]='/'; }else { a[i][j]=' '; } } }for(int i=0;i<=n;i++){ printf("%s\n",a[i]); } return 0; }