回形方阵问题

/*回型方阵
输入首字符和高后,输出如图所示回型方阵。
A A A A A 
A B B B A 
A B C B A 
A B B B A 
A A A A A 
*/
#include<cstdio>
#include"stdlib.h"
#include"math.h"
int small(int i,int j)
{if(i>j)  
return j;
else return i;}//取较大的那个值
int main()
{char c;
 int n;
 //scanf("%c,%d",&c,&n);
 do
 {
  scanf("%c,%d",&c,&n);
 }while(c<'A'||c>'Z'&&c<'a'||c>'z');
 
 if(c+n/2>'z'&&c>'a')
c='z'-(n-1)/2;
else if(c+n/2>'Z'&&c<'Z')
c='Z'-(n-1)/2;
 for(int i=1;i<=n;i++)
 { for(int j=1;j<=n;j++)
  {int t,k;
 t=i;
 k=j;
 if(i>(n+1)/2)
          t=n+1-i;
       if(j>(n+1)/2)
   k=n+1-j;
    int temp=small(t,k);
   //temp=t+k-temp;
   if(temp<0)
     temp=0-temp;
    printf("%c ",c+temp-1);
  }
  printf("\n");
 }
 system("pause");
 return 0;
}
//小结:但凡涉及到对称的问题,应当首先考虑n/2,(n+1)/2,(n-1)/2和正数负数的转换问题


 


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值