打印十字图
Posted woxiaosade
tags:
篇首语:本文由小常识网(cha138.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; }
以上是关于打印十字图的主要内容,如果未能解决你的问题,请参考以下文章