题目描述
给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。
输入
输入只有一行, 包含一个字符。
输出
该字符构成的菱形。
输入样例
*
输出样例
*
***
*****
***
*
解题思路
该菱形有5行,假设编号为i,i 取 0~4;
把这5行分为两部分:空格部分和符号部分;
我的方法是在行编号i和空格数j,符号数目k之间找关系然后列式
i | j | k |
0 | 2 | 1 |
1 | 1 | 3 |
2 | 0 | 5 |
3 | 1 | 3 |
4 | 2 | 1 |
得出三者(i,j,k)关系——j = |i - 2| ; k + 2m = 5,据此写代码
C++代码实现
#include<iostream>
using namespace std;
int main()
{
char a;
cin >> a;
for (int i = 0; i < 5; i++)
{
int m = abs(i - 2);
for (int j = 0; j < m; j++)
{
cout << " ";
}
for (int k = 0; k < 5-2 * m; k++)
{
cout << a;
}
cout << endl;
}
}
这是我做这个题目时的思路,方法可能不是最简,欢迎大家提出意见
初学者第一篇博客,请多指教!