2110.快!没时间解释了!

题目描述

时间在一分一秒流逝,来让我们打印个简单的沙漏吧!
给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
记住把没用完的符号数量记录下来。

输入

输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。

输出

首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

样例输入

19 *

样例输出

*****
 ***
  *
 ***
*****
2

代码内容

#include <iostream>
using namespace std;

int main()
{
    
    
	int i, n, sum = 0, m, sheng, j, r;
	char c;
	cin >> n >> c;
	for (i = 1; sum <= n; i++)//计算共打印几行,还剩但是字符
	{
    
    
		if (i == 1)
			sum = 1;
		else
			sum += 2 * (2 * i - 1);
		j = i;
	}
	sum -= 2 * (2 * j - 1);
	sheng =n-sum;
	j = j - 1; //共j行
	m = j;
	for (i = 0; i < j-1; i++)//打印前j-1行
	{
    
    
		for(r=0;r<i;r++)//打印空格
			cout << " ";
		for(r=0;r<(2*m-1);r++)//打印字符
			cout << c;
		m--;
		cout << endl;
	}
	m = j;
	for (i = 1; i <= m; i++)//打印后j行
	{
    
    
		for(r=0;r<(j-i);r++)
			cout << " ";
		for(r=0;r<(2*i-1);r++)
			cout << c;
		cout << endl;
	}
	cout << sheng << endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_51800059/article/details/111401719
今日推荐