1027 打印沙漏 (20 分)

打印沙漏
以后再也不用为这种题恐惧了,真的恶习!
只需要输出沙漏前半部分的空格,后半部分没必要。
找到规律,先把空格打印完,然后打印字符,最后打印换行符。

#include<cstdio>
#include<cmath>
int main(){
	int n;
	char c;
	scanf("%d %c",&n,&c);
	int r = sqrt((n+1)/2);
	int res = n - 2*r*r + 1;
	//打印细节
	//倒三角 
	for(int i=0;i<r;i++){
		for(int j=0;j<i;j++) printf(" ");
		for(int j=0;j<2*r-1-2*i;j++) printf("%c",c);
		printf("\n");
	} 
	//正三角
	for(int i=1;i<r;i++){
		for(int j=0;j<r-1-i;j++) printf(" ");
		for(int j=0;j<2*i+1;j++) printf("%c",c);
		printf("\n");
	} 
	printf("%d",res);
	return 0;
} 
全部评论

相关推荐

06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务