B1027 打印沙漏

我们两清 提交于 2020-02-24 14:27:45

在这里插入图片描述
C++代码:

#include<cstdio>
#include<cmath>
int main(){
	int n;
	char c;
	scanf("%d %c",&n,&c);
	int bottom=(int)sqrt(2.0*(n+1))-1;//int 强制转换(向下取整)
	if(bottom%2==0){
		bottom--;
	} 
	int used=(bottom+1)*(bottom+1)/2-1;
	//输出倒三角
	for(int i=bottom;i>=1;i=i-2){
		for(int j=0;j<(bottom-i)/2;j++){
			printf(" ");
		}
		for(int j=0;j<i;j++){
			printf("%c",c);
		}
		printf("\n");
	}
	//输出正三角
	for(int i=3;i<=bottom;i=i+2){
		for(int j=0;j<(bottom-i)/2;j++){
			printf(" ");
		}
		for(int j=0;j<i;j++){
			printf("%c",c);
		}
		printf("\n");
	} 
	printf("%d\n",n-used);
	

	return 0;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!