打印大X

    xiaoxiao2021-03-25  92

    小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。 为了便于比对空格,所有的空白位置都以句点符来代替。 要求输入两个整数m n,表示笔的宽度,X的高度。用空格分开(0<m<n, 3<n<1000, 保证n是奇数) 要求输出一个大X 例如,用户输入: 3 9 程序应该输出: ***.....*** .***...***. ..***.***.. ...*****... ....***.... ...*****... ..***.***.. .***...***. ***.....*** (如有对齐问题,参看【图1.jpg】) 再例如,用户输入: 4 21 程序应该输出 ****................**** .****..............****. ..****............****.. ...****..........****... ....****........****.... .....****......****..... ......****....****...... .......****..****....... ........********........ .........******......... ..........****.......... .........******......... ........********........ .......****..****....... ......****....****...... .....****......****..... ....****........****.... ...****..........****... ..****............****.. .****..............****. ****................**** (如有对齐问题,参看【图2.jpg】) 资源约定: 峰值内存消耗(含虚拟机) < 256M

    CPU消耗  < 1000ms

    方法一:

    public static void main(String[] args){ Scanner sc=new Scanner(System.in); int m=sc.nextInt(); int n=sc.nextInt(); char[][] a=new char[n][m+n-1]; for(int i=0;i<n;i++){ for(int j=0;j<m+n-1;j++){ a[i][j]='.'; } } for(int i=0;i<n;i++){ for(int j=i;j<i+m;j++){ a[i][j]='*'; } } for(int i=0;i<n;i++){ for(int j=m+n-2-i;j>=n-1-i;j--){ a[i][j]='*'; } } for(int i=0;i<n;i++){ for(int j=0;j<m+n-1;j++){ System.out.print(a[i][j]); } System.out.println(); } }方法二:

    static Scanner scan=new Scanner(System.in); public static void main(String[] args){ Test3 test=new Test3(); test.start(); } String[] charArray; public void start(){ int a=scan.nextInt(); int b=scan.nextInt(); int[] a1=new int[a]; int[] b1=new int[a]; charArray=new String[b+a-1]; for(int i=0;i<a1.length;i++){ a1[i]=i; b1[i]=b-1+i; } recursion(a1,b1,a,0,b); } //a数组、b数组 //c是边界 public void recursion(int[] a,int[] b,int d,int c,int c1){ if(c==c1){ return; } for(int i=0;i<charArray.length;i++){ if((i>=a[0]&&i<=a[d-1])||(i<=b[d-1]&&i>=b[0])) charArray[i]="*"; else charArray[i]="."; } for(String i:charArray) System.out.print(i); System.out.println(); for(int i=0;i<a.length;i++){ a[i]++; b[i]--; } recursion(a,b,d,c+1,c1); }

    转载请注明原文地址: https://ju.6miu.com/read-24268.html

    最新回复(0)