題目描述


源代碼
思路:
遇到這種題:教你們一個萬能的思路
第一步:先列印上半部分,
第二步:列印下半部分
(像這種題目,已經確定了行數為奇數,我們就可以直接列印中間一行)
#include<iostream>
using namespace std;
int main()
{
int m,n;
cin>>m>>n;
for(int i=1;i<=n/2;i++) //上半部分
{
for(int j=1;j<=m+n-1;j++)
{
if((j>=i&&j<i+m)||(j>n-i&&j<=m+n-i)) cout<<"*";
else cout<<".";
}
cout<<endl;
}
for(int j=1;j<=m+n-1;j++) //中間一行
{
int l=(n-1)/2;
int r=l+m;
if(j>l&&j<=r) cout<<"*";
else cout<<".";
}
cout<<endl;
for(int i=n/2;i>=1;i--)
{
for(int j=1;j<=m+n-1;j++)
{
if((j>=i&&j<i+m)||(j>n-i&&j<=m+n-i)) cout<<"*";
else cout<<".";
}
cout<<endl;
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272614.html
標籤:其他
