7-3 寵魅之冰空精靈 (20分) java

(太累了出個水題給你們福利下) 冰空精靈 元素界-冰系-精靈族-高等戰將級。 上半身爲類似人的形態,下半身是渾濁的冰雪。冰空精靈的身體被厚厚的冰晶覆蓋,相當於時時刻刻都施加了技能冰鎧。它擁有高出其他任何生物的掌控冰的能力,在各種極地的礦石的培養下,實力可以不斷的提升。 經歷了長時間的戰鬥,楚暮的月光狐成長爲三段三階,然而月光狐終究只是奴僕級魂寵。爲了成爲囚島之王,楚暮必定要捕獲戰將級魂寵。不久前楚暮發現了一隻二段三階的高天賦冰空精靈。經過多日的觀察楚暮發現冰空精靈的活動範圍爲一個底邊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++;
		}
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章