java中另一个字符的正方形内的字符正方形

时间:2015-10-02 23:07:00

标签: java

我想以这种格式打印一个方形字符,以行数为基础 例如:

    number of lines : 4 
    output : 

    a  a   a  a 
    a  b   b  a 
    a  b   b  a
    a  a   a  a

    number of lines : 5

    output : 

    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

但我不知道如何得到这样的结果,这是我的代码

import java.util.Scanner;
public class test { 
    public static void main ( String arugs [] ) { 
        Scanner read= new Scanner(System.in) ;
        System.out.println ( " please inter the number of line : " ) ; 
        int size = read.nextInt();
        int []array = new int[size ]; 
        int c = 97;

        for(int i = 0; i < size; ++i) {

            for(int j = 0; j < size; ++j){
                array[i]= c;
                System.out.print( (char)array [i]);}

                System.out.println();

            }
        }
    }
}

2 个答案:

答案 0 :(得分:2)

一种有趣的方式:

public static void main(String arugs[]) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Please enter the number of lines : ");
    int size = sc.nextInt();
    sc.close();

    for (int i = 0; i < size; i++) {
          for (int j = 0; j < size; j++) {
              System.out.print((char) ('a' + Math.min(size - j - 1, Math.min(size - i - 1, Math.min(i, j)))) + " ");
          }
          System.out.println();
      }
  }

这个想法:

  • 我们需要计算特定点(i, j)的“深度”。此单元格的值为'a' + depth
  • 深度定义为点到矩阵任意边缘的最小距离

答案 1 :(得分:0)

在方法var $pages = $('.page'); var currentIndex = 0; var lastScroll = 0; var currentScroll = 0; var targetScroll = 1; // must be set to the same value as the first scroll function doScroll(newScroll) { $('html, body').animate({ scrollTop: newScroll }, 400); } $(window).on('scroll', function() { // get current position currentScroll = $(window).scrollTop(); // passthrough if(targetScroll == -1) { // no target set, allow execution by doing nothing here } // still moving else if(currentScroll != targetScroll) { // target not reached, ignore this scroll event return; } // reached target else if(currentScroll == targetScroll) { // update comparator for scroll direction lastScroll = currentScroll; // enable passthrough targetScroll = -1; // ignore this scroll event return; } // get scroll direction var dirUp = currentScroll > lastScroll ? false : true; // update index currentIndex += (dirUp ? -1 : 1); // reached before start, jump to end if(currentIndex < 0) { currentIndex = $pages.length-1; } // reached after end, jump to start else if(currentIndex >= $pages.length) { currentIndex = 0; } // get scroll position of target targetScroll = $pages.eq(currentIndex).offset().top; // scroll to target doScroll(targetScroll); }); // scroll to first element $(window).scrollTop(1) 中,在中间点之前,字母从positionToChar增加到最大焦点。在中途和之后,字母从最大字符点减少回a

我们基本上有两种情况,偶数和奇数。

偶数:

将数字a作为输入。请记住,我们是零基础。

4 - &gt; positionToChar(0) - &gt; 'a' + (0 < 4 / 2 ? 0 : 4 - 0 - 1)小于04 / 2所以 - &gt; 2 - &gt; <{1}}已退回。

'a' + 0 - &gt; 'a' - &gt; positionToChar(1)小于'a' + (1 < 4 / 2 ? 1 : 4 - 1 - 1)1所以 - &gt; 4 / 2 - &gt; <{1}}已退回。

2 - &gt; 'a' + 1 - &gt; 'b'等于positionToChar(2)'a' + (2 < 4 / 2 ? 2 : 4 - 2 - 1)所以 - &gt; 2 - &gt; <{1}}已退回。

4 / 2 - &gt; 2 - &gt; 'a' + 4 - 2 - 1大于'b'positionToChar(3)所以 - &gt; 'a' + (3 < 4 / 2 ? 3 : 4 - 3 - 1) - &gt; <{1}}已退回。

对于奇数:

将数字3作为输入。请记住,我们是零基础。

4 / 2 - &gt; 2 - &gt; 'a' + 4 - 3 - 1小于'a'3(截断,因为我们使用了两个positionToChar(0))所以 - &gt; 'a' + (0 < 3 / 2 ? 0 : 3 - 0 - 1) - &gt; <{1}}已退回。

0 - &gt; 3 / 2 - &gt; 1等于int'a' + 0(截断,因为我们使用了两个'a')所以 - &gt; positionToChar(1) - &gt; <{1}}已退回。

'a' + (1 < 3 / 2 ? 1 : 3 - 1 - 1) - &gt; 1 - &gt; 3 / 2大于1int(截断,因为我们使用了两个'a' + 3 - 1 - 1)所以 - &gt; 'b' - &gt; <{1}}已退回。

在方法positionToChar(2)中,对于给定的位置,返回'a' + (2 < 3 / 2 ? 2 : 3 - 2 - 1)2的计算3 / 2的较低1

采用int尺寸的'a' + 3 - 2 - 1对:

第一层:

'a' - &gt;在上一个示例中,我们将minChar计算为char。返回char,这是我们唯一的字符。

x - &gt;在上一个示例中,我们将y计算为(x, y),将3计算为(0, 0)。返回0,因为它是两者中较小的一个。

'a' - &gt;在上一个示例中,我们将'a'(0, 1)都计算为0。返回'a',这是我们唯一的字符。

第二层:

1 - &gt;在上一个示例中,我们将'b'计算为'a',将(0, 2)计算为0。返回2,因为它是两者中较小的一个。

'a' - &gt;在上一个示例中,我们将'a'计算为(1, 0)。返回1,这是我们唯一的字符。

'b' - &gt;在上一个示例中,我们将0计算为'a',将'a'计算为(1, 1)。返回1,因为它是两者中较小的一个。

第三层:

'b' - &gt;在上一个示例中,我们将'b'(1, 2)都计算为1。返回'b',这是我们唯一的字符。

2 - &gt;在上一个示例中,我们将'a'计算为'a',将(2, 0)计算为2。返回0,因为它是两者中较小的一个。

'a' - &gt;在上一个示例中,我们将'a'计算为(2, 1)。返回2,这是我们唯一的字符。

结果:

a a a

a b a

a a a

'a'