BUCTOJ
* 讨论版
* 常见问答
* 问题
* 状态
* 排名
* 竞赛&作业
* 名校联赛
- 2016016294
关于十二月份月赛的通知 本学期最后两次月赛将于12月17日,1月7日举行 1. 本次月赛时间为12月17月9:00-12:00 2. 地点:另行通知 3. 本次比赛可以携带纸质书籍查阅资料 4. 10%一等奖,20%二等奖,30%三等奖 5. 获得一等奖的同学直接进入ACM集训队 欢迎大家报名参加比赛!! 报名链接:https://wj.qq.com/s/1745264/6f12
3306: 美男有毒
时间限制: 1 Sec内存限制: 256 MB
提交: 17解决: 6
[提交][状态][讨论版]
题目描述
众所周知,gyt喜欢玩“美男有毒”这款游戏,在这款游戏里,gyt一夜之间无辜“被穿越”,没有倾城之貌也就算了,竟然还自带称号“帝都第一丑女”!王妃梦碎,老爹嫌弃,继母暗害,到底能信任何人,日子真要过得如此凄惨吗?
就在这困难之际,天神伸出援手,告诉gyt,只要gyt答对了一个问题就可以穿越回现代,然而gyt太菜了,不知道这个问题的答案是什么,快来帮他回答吧。
谢尔宾斯基三角形是这样一类图形,当你输入n可以得到以下图形:
n=0:
n=1:
*
n=2:
*
*
*
* * *
可以发现,n号谢尔宾斯基三角形是由三个n-1号谢尔宾斯基三角形拼接得来的,现在天神给你一个n,要求你输出相应的谢尔宾斯基三角形。
输入
第一行一个正整数t,表示样例个数。
接下来t行,每行一个非负数n(n<10)
输出
对于每一个n,输出相应的谢尔宾斯基三角形(注意每一行的最后一个*后面均无空格)
样例输入
3
0
1
2
样例输出
*
* *
*
* *
* *
* * * *
*
* *
* *
* * * *
* *
* * * *
* * * *
* * * * * * * *
提示
来源
#include<bits/stdc++.h>
using namespace std;
char p[2500][2500];
void Draw(int n,int x,int y){
if(n==0){
p[x][y+1]='*';
p[x+1][y]='*';
p[x+1][y+2]='*';
return;
}
Draw(n-1,x,y+(1<<n));//不断调用这个y一直向后移就得到开头的了
Draw(n-1,x+(1<<n),y);//然后下移了一个三角形,先第一个,然后第三个啊啊啊啊!什么鬼
Draw(n-1,x+(1<<n),y+(1<<(n+1)));
}
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
memset(p,' ',sizeof(p));
Draw(n,0,0);
for(int i=0;i<(1<<(n+1));i++)
for(int j=2500-1;p[i][j]==' ';p[i][j]='\0',j--);
for(int i=0;i<(1<<(n+1));i++)
printf("%s\n",p[i]);
}
return 0;
}
原文链接: https://www.cnblogs.com/cunyusup/p/8012860.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/265088
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!