题目描述
给定一个字符,用它构造一个对角线长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++代码实现
#includeusing 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; } }
这是我做这个题目时的思路,方法可能不是最简,欢迎大家提出意见
初学者第一篇博客,请多指教!