找规律的简易题解
2026-09-06 00:30:49
发布于:广东
6阅读
0回复
0点赞
稍微加点技巧的简易好理解代码
/*我们可以把整个图形看做一个二维的长方形格子矩阵,除了指定放方格填"*".其余方格填"空格"
拆分上下部分。上部分是n行,下部分n-1行 ,找到数字以中位数开始的变化规律
例如 n=5 上半部分形状:
第一行第(5-0)格 和 (5+0)格填“*”,其余填“空格”
第二行第(5-1)格 和 (5+1)格填“*”,其余填“空格”
第三行第(5-2)格 和 (5+2)格填“*”,其余填“空格”
第四行第(5-3)格 和 (5+3)格填“*”,其余填“空格”
第五行第(5-4)格 和 (5+4)格填“*”,其余填“空格”
下半部分形状:
第一行第(5-3)格 和(5+3)格填“*”,其余填“空格”
第二行第(5-2)格 和(5+2)格填“*”,其余填“空格”
第三行第(5-1)格 和(5+1)格填“*”,其余填“空格”
第四行第(5-0)格 和(5+0)格填“*”,其余填“空格”
*/
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int l=n;//中间格子位置
int r=n;
for(int i=0;i<n;i++){
for(int j=1;j<=n*2;j++){
if(j==l-i || j==r+i ) cout<<'*';
else cout<<' ';
}
cout<<endl;
}
for(int i=n-1-1;i>=0;i--){
for(int j=1;j<=n*2;j++){
if(j==l-i || j==r+i ) cout<<'*';
else cout<<' ';
}
cout<<endl;
}
}
这里空空如也

有帮助,赞一个