团体程序设计天梯赛-练习集(一)

L1-002 打印沙漏 (20分)

https://pintia.cn/problem-sets/994805046380707840/problems/994805145370476544

代码:

#include <cstdio>
#include <vector>
#include <cstring>
#include <string>
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
	vector<int> a;
	a.push_back(1);
	int n,s=1,c,p;
	int i,j,k;
	char chr;
	cin>>n;
	cin>>chr;
	for(i=3;s+i*2<=n;i+=2)
	{
		s+=i*2;
		a.push_back(i);
	 }
	  c=n-s;
	  p=i-2;
	  for(i=a.size()-1;i>=0;i--)
	  {
	  	 j=p-a[i];
	  	 for(k=0;k<j/2;k++) cout<<" ";
	  	 for(k=0;k<a[i];k++) cout<<chr;
	  	 cout<<endl;
	  }
	  for(i=1;i<a.size();i++)
	  {
	  	j=p-a[i];
	  	for(k=0;k<j/2;k++) cout<<" ";
	  	for(k=0;k<a[i];k++) cout<<chr;
	  	cout<<endl;
	  }
	  cout<<c<<endl;
	  return 0;
}

  

猜你喜欢

转载自www.cnblogs.com/jianqiao123/p/12050765.html