我想以这种格式打印一个方形字符,以行数为基础 例如:
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();
}
}
}
}
答案 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)
小于0
或4 / 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
大于1
或int
(截断,因为我们使用了两个'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'