通俗题解||N-打印图像-曼哈顿距离
2024-08-26 15:12:55
发布于:广东
6阅读
0回复
0点赞
解题思路见下面的代码注释~
AC代码:
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int k = n-1,len=2*n-1;//k作为输出图像中的数字,len表示图像的长与宽
for(int i=1;i<=len;i++){//共输出len行
int m=abs(n-i);//规律可得每行左侧和右侧的星号数均为(n-i)个,用m来表示星号数量
for(int j=1;j<=m;j++){//从第1列至第m列,输出星号
cout<<'*';
}
for(int j=m+1;j<=len-m;j++){//从第m+1列至第len-m列,输出数字
cout<<k;//打印k值
if(j<n)k--;//从第m+1列到第n列,k值递减
else k++;//从第n列到第len-m列,k值递增
}
k--;//最后会多加一次,减回去
for(int j=len-m+1;j<=len;j++){//从第len-m+1至第len-m列,输出星号
cout<<'*';
}
cout<<endl;//记得换行
}
return 0;
}
这里空空如也
有帮助,赞一个