题目1432:叠筐(水题!!!)

题目描述:

把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。

输入:

输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;

输出:

输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。


这题相当的水,没有说明外角被打磨掉是直接输出换行还是空格。另外就是要注意边界问题,当n == 1 时的情况。

样例输入:
11 B A 
5 @ W
样例输出:
 AAAAAAAAA
ABBBBBBBBBA
ABAAAAAAABA
ABABBBBBABA
ABABAAABABA
ABABABABABA
ABABAAABABA
ABABBBBBABA
ABAAAAAAABA
ABBBBBBBBBA
 AAAAAAAAA

 @@@
@WWW@
@W@W@
@WWW@
 @@@
import java.util.Scanner;
 
public class Main{
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
         
        while( scanner.hasNext() ){
            int n = scanner.nextInt();
            char c[] = new char[2];
            c[0] = scanner.next().toCharArray()[0];
            c[1] = scanner.next().toCharArray()[0];
            char result[][] = new char[n][n];
             
             
             
            for (int i = 1, j = 1; i < n+1; i+=2, j++) {
                int x = n/2, y = x;
                x = x -(j-1);
                y = y -(j-1);
                char inputChar = j%2 == 1?c[0]:c[1];
                for (int k = 1; k <= i; k++) {
                    result[x+k-1][y] = result [x][y+k-1] = result[x+i-1][y+k-1] = result[x+k-1][y+i-1] = inputChar;
                }
                 
                 
            }
             
            if(n > 1){
                result[0][0] = result[0][n-1] = result[n-1][0] = result[n-1][n-1] = ' ';
                System.out.println();
                for(int i = 0; i < n; i++){
                    for (int j = 0; j < n; j++) {
                        System.out.print(result[i][j]);
                        if(j == n-1){
                            System.out.println();
                        }
                    }
                }
            }else{
                System.out.println(c[0]);
            }
             
        }
    }
 
}
 
/**************************************************************
    Problem: 1432
    User: yihukurama
    Language: Java
    Result: Accepted
    Time:410 ms
    Memory:23976 kb
****************************************************************/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值