1. 程式人生 > >打印十字圖

打印十字圖

16px str 紅十字會 需要 code 控制 mat cst .com

問題描述

小明為某機構設計了一個十字型的徽標(並非紅十字會啊),如下所示:

技術分享圖片

對方同時也需要在電腦dos窗口中以字符的形式輸出該標誌,並能任意控制層數。

輸入格式 一個正整數 n (n<30) 表示要求打印圖形的層數。 輸出格式 對應包圍層數的該標誌。 樣例輸入1 1 樣例輸出1 技術分享圖片

樣例輸入2 3 樣例輸出2 技術分享圖片

提示 請仔細觀察樣例,尤其要註意句點的數量和輸出位置。
#include <iostream>
#include <cstdio>
#include <stdio.h>
#include 
<vector> #include <algorithm> #include <stdlib.h> #include <string.h> #include <cmath> #include <string> #include <fstream> using namespace std; int hoge(int x,int y,int n){ if(x == 2*(n+1) && y <=2*n)//第一排 return 1; else
if(x == 2*n+1 && y == 2*n)//第二排 return 1; else if(x < 2*n && y== 2*(n+1)) //四周邊框 return 1; else if(x ==0 && y==0)//圖形中心 return 1; else if(x==2*n && (y==2*(n+1)||y==2*(n+1)-1||y==2*(n+1)-2))//第三排 return 1; return 0; }
int main(){ int n; cin>>n; int x = 2*(n+1);//x for(int i=0;i<4*n+5;i++){ for(int j=0;j<4*n+5;j++){ int k; for(k = 0;k<=n;k++) if(hoge(abs(x-i),abs(x-j),k)==1){ cout<<$; break; } if(k == n+1) cout<<.; } cout<<endl; } return 0; }

打印十字圖