(太累了出個水題給你們福利下) 冰空精靈 元素界-冰系-精靈族-高等戰將級。 上半身爲類似人的形態,下半身是渾濁的冰雪。冰空精靈的身體被厚厚的冰晶覆蓋,相當於時時刻刻都施加了技能冰鎧。它擁有高出其他任何生物的掌控冰的能力,在各種極地的礦石的培養下,實力可以不斷的提升。 經歷了長時間的戰鬥,楚暮的月光狐成長爲三段三階,然而月光狐終究只是奴僕級魂寵。爲了成爲囚島之王,楚暮必定要捕獲戰將級魂寵。不久前楚暮發現了一隻二段三階的高天賦冰空精靈。經過多日的觀察楚暮發現冰空精靈的活動範圍爲一個底邊N(N爲小於70的奇數)高爲(N+1)/2的等腰三角形。聰明的ACMER幫忙打印出冰空精靈的活動範圍,活動邊界用"@"打印,內部用"~"打印。
輸入格式: N(N爲<70的奇數) 輸入到文件尾結束輸出格式:
打印的圖形 每2組輸出之間相隔一個空行
輸入樣例:
在這裏給出一組輸入。例如:
7
9
11
輸出樣例:
太亂了就不貼了
這題我一定要寫下來。又碰到字符數組的坑了。字符數組初始化的時候裏面的元素是ASCII碼的0而不是字符‘0’,判斷元素有沒有被賦值是轉爲int判斷是否等於0,而不是直接==‘0’。另外直接在控制檯打印也是個空格,但不是我們所想的空格,我們想的是ASCII裏面的那個值是32的空格。還有一點是java如何判斷文件尾,java裏面似乎沒有EOF,所以寫個死循環一直讀就好
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
//** Class for buffered reading int and double values *//*
class Reader {
static BufferedReader reader;
static StringTokenizer tokenizer;
// ** call this method to initialize reader for InputStream *//*
static void init(InputStream input) {
reader = new BufferedReader(new InputStreamReader(input));
tokenizer = new StringTokenizer("");
}
// ** get next word *//*
static String next() throws IOException {
while (!tokenizer.hasMoreTokens()) {
// TODO add check for eof if necessary
tokenizer = new StringTokenizer(reader.readLine());
}
return tokenizer.nextToken();
}
static boolean hasNext()throws IOException {
return tokenizer.hasMoreTokens();
}
static String nextLine() throws IOException{
return reader.readLine();
}
static char nextChar() throws IOException{
return next().charAt(0);
}
static int nextInt() throws IOException {
return Integer.parseInt(next());
}
static float nextFloat() throws IOException {
return Float.parseFloat(next());
}
static double nextDouble() throws IOException {
return Double.parseDouble(next());
}
}
public class Main {
public static void main(String[] args) throws IOException {
Reader.init(System.in);
int zushu = 0;
while (true) {
int n = Reader.nextInt();
char[][]g = new char[n][n];
int left = 0;
int right = n-1;
int level = n-1;
while (left<=right) {
if (level==n-1) {
for (int i = left; i <= right; i++) {
g[level][i] = '@';
}
}else {
g[level][left] = '@';
g[level][right] = '@';
for (int i = left+1; i < right; i++) {
g[level][i] = '~';
}
}
level--;
left++;
right--;
}
if (zushu!=0) {
System.out.println();
}
for (int i = level+1; i < g.length; i++) {
for (int j = 0; j<= i; j++) {
if ((int)g[i][j]==0) {
System.out.print(" ");
}else {
System.out.print(g[i][j]);
}
}
System.out.println();
}
zushu++;
}
}
}