1027 打印沙漏 (20分)
题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805294251491328
需要注意的坑是:这个沙漏左右不需要对称,所以不需要输出右边的空格,否则会被判断格式错误
#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
int main()
{
int n = 0;
char symbol;
cin >> n >> symbol;
int t = (n + 1) ;
int i = 1;
while ((t - 2*i) >= 0)
{
t -= 2*i;
i += 2;
}
i -= 2;
for (int j = 0; j < (i+1)/2; j++)
{
for (int k = 0; k < j; k++)
cout << " ";
for (int k = 0; k < i-2*j; k++)
cout << symbol;
//for (int k = 0; k < j; k++)
// cout << " ";
cout << endl;
}
for (int j = 1; j < (i + 1) / 2; j++)
{
for (int k = 0; k < (i-2*j-1)/2; k++)
cout << " ";
for (int k = 0; k < 2*j+1; k++)
cout << symbol;
//for (int k = 0; k < (i - 2 * j - 1) / 2; k++)
// cout << " ";
cout << endl;
}
cout << t << endl;
return 0;
}