时间限制: 1000 ms 内存限制: 65536 KB
提交数: 95318 通过数: 66038
【题目描述】
给定一个字符,用它构造一个对角线长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;
}
}
这是我做这个题目时的思路,方法可能不是最简,欢迎大家提出意见