解题思路:





注意事项:





参考代码:

import java.util.Scanner;

public class C1442 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			F(sc.nextInt());
		}
		sc.close();
	}
	
	private static void F(int n){
		//共有(5+4*n)行, 上下以第(3+2*n)行为分割线对称, 求出前面(3+2*n)行即可打印完整图形
		int len = 3+2*n;
		char[][] a = new char[len][len];
		a[0][0] = '.';
		int k = 2*n + 1;
		for(int m = 1; m <= k; m+=2){
			a[m][m-1] = '.';
			a[m-1][m] = '.';
			a[m][m] = '.';
			for(int i = m+2; i <= k+1; i++){
				a[i][m] = '.';
				a[m][i] = '.';
			}
		}
		
		StringBuffer sb = new StringBuffer();
		for(int i = 0; i < len; i++){
			for(int j = 0; j < len; j++){
				if(a[i][j] != '.')
					a[i][j] = '$';
				sb.append(a[i][j]);
			}
			for(int j = len - 2; j >= 0; j--){
				sb.append(a[i][j]);
			}
			sb.append("\n");
		}
		for(int i = len-2; i >= 0; i--){
			for(int j = 0; j < len; j++){
				sb.append(a[i][j]);
			}
			for(int j = len - 2; j >= 0; j--){
				sb.append(a[i][j]);
			}
			sb.append("\n");
		}
		System.out.println(sb);
		
	}
}


点赞(2)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论