输出图形

第一题

输入整数n,输出n层   A

                            B  B

                         C   C   C

                     D   D   D    D

                 ..................................

import java.util.*;
public class Main {
    public static void main(String[] argv) {
        Scanner cin = new Scanner(System.in);
        int n = cin.nextInt();
        for (int i = 1; i <= n; ++i) {

            int num_space = n-i ;
            int num_ch = 2*i-1;
            char ch = (char)(65+i-1) ;
            for (int j = 0; j < num_space; ++j) {
                System.out.print(" ");
            }
            for (int j = 0; j < num_ch; ++j) {
                System.out.print(ch);
            }
            System.out.println();
       
        }
    }
}

第二题

这次我们输出一个稍微复杂的三角形,输入一个大写字母(A-Z)或者一个数字(1-9)。

比如输入是F的时候,输出:

 
 
1
     A
2
    ABA
3
   ABCBA
4
  ABCDCBA
5
 ABCDEDCBA
6
ABCDEFEDCBA

输入是3的时候,输出:

 
 
 
        
1
  1
2
 121
3
12321

输入格式

输入一个数字(1-9)或者一个大写字母(A-Z)。

输出格式

按照题目描述,输出对应的三角形。

样例输入1
F
样例输出1
     A
    ABA
   ABCBA
  ABCDCBA
 ABCDEDCBA
ABCDEFEDCBA
样例输入2
4
样例输出2
   1
  121
 12321
1234321

import java.io.IOException;


public class Main{

	public static void main(String[] args) throws IOException {
		char m = (char) System.in.read();// 输入字符
		if (m >= '1' && m <= '9') {
			for (int i = 1; i <= m - '0'; i++) {

				for (int j = 1; j <= m - '0' - i; j++) {
					System.out.print(" ");
				}
				for (int a = 1; a <= i; a++) {
					System.out.print(a);
				}
				for (int a = i - 1; a >= 1; a--) {
					System.out.print(a);
				}
				System.out.println();

			}
		}

			if ((int) m >= 65 && (int) m <= 90) {
				for (int i = 1; i <= m - 64; i++) {

					for (int j = 1; j <= m - 64 - i; j++) {
						System.out.print(" ");
					}
					for (int a = 1; a <= i; a++) {
						System.out.print((char) (65 + a - 1));
					}
					for (int a = i - 1; a >= 1; a--) {
						System.out.print((char)(65 + a - 1));
					}
					System.out.println();

				}

			

		}

	}
}

第三题

蒜头君最近迷恋上了一款游戏《我的世界(Minecraft)》,在游戏里面蒜头君可以任意开发资源然后建造各种宏伟的建筑。有一天蒜头君发现了一块荒野的土地上有很多宝藏,蒜头君想在土地上建一栋房子从而把宝藏包围起来。

假设地图是一个 nn 行 mm 列的方格地图,地图每个格子*代表一个宝藏。比如 22 行 22 列的地图如下:

 
 
1
**
2
**

蒜头君对应要建的房子如下:

 
 
 
        
1
+-+-+
2
|*|*|
3
+-+-+
4
|*|*|
5
+-+-+

现在蒜头君告诉你地图的行列数,帮他画出房子的设计图。

输入格式

一行两个整数 n,m(0 < n,m \leq 50)n,m(0<n,m50),分别表示地图行数和列数。

输出格式

按照题目中要求的格式输出地图。

样例输入1
2 2
样例输出1
+-+-+
|*|*|
+-+-+
|*|*|
+-+-+
样例输入2
3 4
样例输出2
+-+-+-+-+
|*|*|*|*|
+-+-+-+-+
|*|*|*|*|
+-+-+-+-+
|*|*|*|*|
+-+-+-+-+

import java.util.Scanner;
public class Main{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        int m=scanner.nextInt();
        for(int i=1;i<=2*n+1;i++)
        {
        	for(int j=1;j<=2*m+1;j++)
        	{
        		if(i%2!=0&&j%2!=0)
        		{
        			System.out.print("+");
        		}
        		else if(i%2!=0&&j%2==0)
        		{
        			System.out.print("-");
        		}
        		else if(i%2==0&&j%2!=0)
        		{
        			System.out.print("|");
        		}
        		else {
        			System.out.print("*");
				}
        		if(j%(2*m+1)==0)
        		{
        			System.out.println();
        		}
        	}
        }
	}

}

第四题

小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:

 
 
1
..$$$$$$$$$$$$$..
2
..$...........$..
3
$$$.$$$$$$$$$.$$$
4
$...$.......$...$
5
$.$$$.$$$$$.$$$.$
6
$.$...$...$...$.$
7
$.$.$$$.$.$$$.$.$
8
$.$.$...$...$.$.$
9
$.$.$.$$$$$.$.$.$
10
$.$.$...$...$.$.$
11
$.$.$$$.$.$$$.$.$
12
$.$...$...$...$.$
13
$.$$$.$$$$$.$$$.$
14
$...$.......$...$
15
$$$.$$$$$$$$$.$$$
16
..$...........$..
17
..$$$$$$$$$$$$$..

对方同时也需要在电脑 Dos 窗口中以字符的形式输出该标志,并能任意控制层数。

上面是对应输出 33 层嵌套的时候。

11 层嵌套如下:

 
 
 
        
1
..$$$$$..
2
..$...$..
3
$$$.$.$$$
4
$...$...$
5
$.$$$$$.$
6
$...$...$
7
$$$.$.$$$
8
..$...$..
9
..$$$$$..

输入格式

输入一个整数 n(0 \leq n \leq 30)n(0n30),表示图形嵌套的层数。

输出格式

对应层数的该标志。

样例输入1
1
样例输出1
..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..
样例输入2
4
样例输出2
..$$$$$$$$$$$$$$$$$..
..$...............$..
$$$.$$$$$$$$$$$$$.$$$
$...$...........$...$
$.$$$.$$$$$$$$$.$$$.$
$.$...$.......$...$.$
$.$.$$$.$$$$$.$$$.$.$
$.$.$...$...$...$.$.$
$.$.$.$$$.$.$$$.$.$.$
$.$.$.$...$...$.$.$.$
$.$.$.$.$$$$$.$.$.$.$
$.$.$.$...$...$.$.$.$
$.$.$.$$$.$.$$$.$.$.$
$.$.$...$...$...$.$.$
$.$.$$$.$$$$$.$$$.$.$
$.$...$.......$...$.$
$.$$$.$$$$$$$$$.$$$.$
$...$...........$...$
$$$.$$$$$$$$$$$$$.$$$
..$...............$..
..$$$$$$$$$$$$$$$$$..

import java.util.Scanner;  
public class Main {  
      
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        Scanner in=new Scanner(System.in);  
        int n=in.nextInt();  
        char[][] graph=new char[5+4*n][5+4*n];  
        initBorderPoint(n,graph);  
        initCenterPoint(n,graph);  
        for(int i=0;i<5+4*n;i++) {  
            for(int j=0;j<5+4*n;j++) {  
                System.out.print(graph[i][j]);  
            }  
            System.out.println();  
        }  
  
        in.close();  
          
    }  
      
      
    public static void initBorderPoint(int n,char[][] graph) {        
        graph[0][0]='.';  
        graph[1][0]='.';graph[1][1]='.';  
        graph[2][0]='$';graph[2][1]='$';graph[2][2]='$';          
        for(int i=0;i<2*n;i++) {    
            graph[3+i][0]='$';graph[3+i][1]='.';  
            for(int j=0;j<2+i;j++) {  
                graph[3+i][2+j]=graph[3+i-2][j];  
            }  
        }         
          
        //左上给左下  
        int s=1;  
        for(int i=0;i<graph.length/2;i++) {            
            for(int j=0;j<s;j++) {                 
                graph[graph.length-1-i][j]=graph[i][j];  
                  
            }  
            s++;          
        }  
          
        //左上给右上  
        int c=1;  
        for(int i=0;i<graph.length/2+1;i++) {  
            for(int j=0;j<c;j++) {  
                graph[i][graph.length-1-j]=graph[i][j];  
            }  
            c++;  
        }  
          
        //左下给右下  
        c=1;  
        for(int i=graph.length;i>graph.length/2+1;i--) {  
            for(int j=0;j<c;j++) {  
                graph[i-1][graph.length-1-j]=graph[i-1][j];  
            }  
            c++;  
        }  
          
          
          
    }  
      
      
      
    public static void initCenterPoint(int n,char[][] graph) {  
        graph[graph.length/2-1][graph.length/2]='$';  
        graph[graph.length/2-2][graph.length/2-1]='.';  
        graph[graph.length/2-2][graph.length/2]='$';  
        graph[graph.length/2-2][graph.length/2+1]='.';  
        for(int i=1;i<2*n+1;i++) {  
            for(int j=0;j<2+i;j++) {  
                if(i%2!=0&&j==0) {  
                    graph[graph.length/2-2-i][graph.length/2]='.';  
                }else if(i%2==0&&j==0) {  
                    graph[graph.length/2-2-i][graph.length/2]='$';  
                }  
                if(graph[graph.length/2-2-i][graph.length/2]=='.'&&j>0&&j<2+i-1) {  
                    graph[graph.length/2-2-i][graph.length/2+j]='.';  
                    graph[graph.length/2-2-i][graph.length/2-j]='.';  
                }else if(graph[graph.length/2-2-i][graph.length/2]=='$'&&j>0&&j<2+i-1) {  
                    graph[graph.length/2-2-i][graph.length/2+j]='$';  
                    graph[graph.length/2-2-i][graph.length/2-j]='$';  
                }  
                  
                if(i%2!=0&&j==2+i-1) {  
                    graph[graph.length/2-2-i][graph.length/2+j]='$';  
                    graph[graph.length/2-2-i][graph.length/2-j]='$';  
                }else if(i%2==0&&j==2+i-1) {  
                    graph[graph.length/2-2-i][graph.length/2+j]='.';  
                    graph[graph.length/2-2-i][graph.length/2-j]='.';  
                }  
                              
                  
            }  
        }  
          
        for(int i=0;i<2+2*n;i++) {  
            for(int j=0;j<1+i;j++) {               
                graph[graph.length/2+1+i][graph.length/2]=graph[graph.length/2-1-i][graph.length/2];          
                if(j>=1) {  
                  graph[graph.length/2+1+i][graph.length/2+j]=graph[graph.length/2-1-i][graph.length/2+j];  
                  graph[graph.length/2+1+i][graph.length/2-j]=graph[graph.length/2-1-i][graph.length/2-j];  
                }  
                  
            }  
        }  
          
              
    }  
  
}

第五题

输出杨辉三角形

1
1 1
1 2 1 
1 3 3 1 

1 4 6 4 1 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		int[][] a = new int[n + 1][n + 1];
		a[1][1] = 1;
		a[2][1] = 1;
		a[2][2] = 1;
		System.out.println(a[1][1]);
		System.out.print(a[2][1]+" ");
		System.out.println(a[2][2]);
		for (int i = 3; i <= n; i++) {

			for (int j = 1; j <= i; j++) {
                   if(j==1){
                	   a[i][j]=1;
                	   System.out.print("1"+" ");
                   }
                   else if(j==i)
                   {
                	   a[i][i]=1;
                	   System.out.println("1"+" ");
                   }
                   else {
					a[i][j]=a[i-1][j-1]+a[i-1][j];
					System.out.print(a[i][j]+" ");
				}
			}
		}

	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值