首先打印菱形使用这个方法要先了解
曼哈顿距离公式
D (i,j)=|xi-xj|+|yi-yj|
在一个5x5的矩阵中打印菱形
取中心点为0,则属于菱形的点到中心点的距离都不超过二
如图
那么转化为写代码的思维,我们可以使用曼哈顿距离公式,用for循环计算5x5矩阵中每个点到中心点的距离,小于等于2的打印"*",反之打印" "
下面附上代码
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
int n,i,j;
cin>>n;
int x,y;
x = n/2;y=n/2;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if((abs(i-x)+abs(j-y))<=(n/2))
cout<<"*";
else
cout<<" ";
}
cout<<endl;
}
}