dyxm21 2016-03-23 23:47 采纳率: 100%
浏览 1443
已采纳

求解思路和源码⋯⋯⋯⋯

这个题目没太看懂求思路和源码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯图片说明

  • 写回答

2条回答

  • 边缘颓废之 2016-03-24 02:48
    关注

    有代码,思路自己看。。。
    import java.util.*;

    public class A
    {
    static char[][] Zu;
    
    static class Tur
    {
        int dr = 0;
        int di = -1;
    
        int x = 0;
        int y = 0;
    
        void left()
        {
            int dr2 = di;
            int di2 = -dr;
            dr = dr2;
            di = di2;
        }
        void right()
        {
            int dr2 = -di;
            int di2 = dr;
            dr = dr2;
            di = di2;
        }
        void dot()
        {
            //System.out.println(x+","+y);
            Zu[x][y] = '$';
        }
        void go()
        {
            x += dr;
            y += di;
        }
    }
    
    static void show()
    {
        for(int i=0; i<Zu.length; i++)
        {
            for(int j=0; j<Zu[i].length; j++)
            {
                if(Zu[i][j]>0)
                    System.out.print(Zu[i][j]);
                else
                    System.out.print('.');
            }
            System.out.println();
        }
    }
    
    static void f(int n, int x0, int y0)
    {
        Tur tur = new Tur();
        tur.x = x0+2;
        tur.y = y0+2;
    
        for(int k=0; k<4; k++)
        {
            for(int i=0; i<2; i++){
                tur.dot(); 
                tur.go();
            }
            tur.right();
            for(int i=0; i<4*n; i++){
                tur.dot(); 
                tur.go();
            }
            tur.right();
            for(int i=0; i<2; i++){
                tur.dot(); 
                tur.go();
            }
            tur.left();
        }       
    }
    
    static void test(int n)
    {
        Zu = new char[4*n+5][4*n+5];
    
        for(int i=n; i>=0; i--)
            f(i,2*n-i*2,2*n-i*2);
    
        show();     
    }
    
    public static void main(String[] args)
    {
        test(5);//输出5个
        //test(13); 
    }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥20 jupyter保存图像功能的实现
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符