机试刷题笔记
文章目录
一、叠框问题
中心# ,外围@,大小7
重点在于分析循环,每层循环的作用,以及起始
int n=7;
char center='#';
char outside='@';
int i,j;
char now;
//大小为7,循环4次,4个叠框
for(i=0;i<(n/2)+1;i++){
//确定需要填充的花色
if(((n-1)/2)%2==1){
if(i%2==0){
now = outside;
}else{
now = center;
}
}else{
if(i%2==0){
now = center;
}else{
now = outside;
}
}
cout<<n<<i<<now<<endl;
//进行填充,每个叠框,周长为n-(2*i),每次填充四个位置,上下左右四个边框的第j个位置
for(j=0;j<n-(2*i);j++){
map[i][i+j]=now;//上
map[i+j][i]=now;//左
map[n-i-1][i+j]=now;//下
map[i+j][n-i-1]=now;//右
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cout<<map[i][j];
}
cout<<endl;
}