打印十字圖
阿新 • • 發佈:2019-01-24
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; elseif(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; }
打印十字圖