A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王家胜 中级黑马   /  2013-12-1 22:00  /  950 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王家胜 于 2013-12-1 22:17 编辑

输入1输出
1
输入2输出
1      2
3
输入3输出
1        2        3        
6        4        
5        
输入4输出
1        2        3        4        
9        10        5        
8        6        
7
以此类推输入n,输出n行n列且以三角环连续递增输出
如输入9输出
1        2        3        4        5        6        7        8        9        
24        25        26        27        28        29        30        10        
23        39        40        41        42        31        11        
22        38        45        43        32        12        
21        37        44        33        13        
20        36        34        14        
19        35        15        
18        16        
17

评分

参与人数 1技术分 +1 黑马币 +6 收起 理由
枫儿 + 1 + 6 神马都是浮云

查看全部评分

3 个回复

倒序浏览
import java.util.Scanner;   public class Test4  {         int date[][]=null;         public static void main(String[] args)          {                          Test4 test=new Test4();                 int n=test.getInput();//获取一个数                 test.createArray(n);//分配内存                 test.Caozuo(n);//计算                 test.Output(n);//输出                          }                 public int getInput()         {                 Scanner s=new Scanner(System.in);                 return s.nextInt();//获取一个数         }         public void createArray(int n)         {                 date=new int[n][];                 for(int i=0;i<n;i++)//输入                 {                         date[i]=new int[n-i];                 }         }         public void Output(int n)         {                 for(int i=0;i<n;i++)//输出                 {                         for(int j=0;j<date[i].length;j++)                         {                                 System.out.print(date[i][j]+"\t");                         }                         System.out.println();                 }         }         public void Caozuo(int n)         {                 int number=1;                 int xunhuan=n/3+1;//暂时不知到xunhuan取值为什么最好,按规律设置的                 for(int m=0;m<xunhuan;m++)                 {                         for(int i=m;i<n-2*m;i++)//横向                         {                                 date[m][i]=number;                                 number++;                         }                         for(int i=1+m;i<n-2*m;i++)//斜向                         {                                 date[i][n-i-1-m]=number;                                 number++;                         }                         for(int i=n-2-2*m;i>m;i--)//竖向                         {                                 date[i][m]=number;                                 number++;                         }                 }         } }
回复 使用道具 举报
import java.util.Scanner;


public class Test4
{
        int date[][]=null;
        public static void main(String[] args)
        {
       
                Test4 test=new Test4();
                int n=test.getInput();//获取一个数
                test.createArray(n);//分配内存
                test.Caozuo(n);//计算
                test.Output(n);//输出
               
        }       
        public int getInput()
        {
                Scanner s=new Scanner(System.in);
                return s.nextInt();//获取一个数
        }
        public void createArray(int n)
        {
                date=new int[n][];
                for(int i=0;i<n;i++)//输入
                {
                        date[i]=new int[n-i];
                }
        }
        public void Output(int n)
        {
                for(int i=0;i<n;i++)//输出
                {
                        for(int j=0;j<date[i].length;j++)
                        {
                                System.out.print(date[i][j]+"\t");
                        }
                        System.out.println();
                }
        }
        public void Caozuo(int n)
        {
                int number=1;
                int xunhuan=n/3+1;//暂时不知到xunhuan取值为什么最好,按规律设置的
                for(int m=0;m<xunhuan;m++)
                {
                        for(int i=m;i<n-2*m;i++)//横向
                        {
                                date[m][i]=number;
                                number++;
                        }
                        for(int i=1+m;i<n-2*m;i++)//斜向
                        {
                                date[i][n-i-1-m]=number;
                                number++;
                        }
                        for(int i=n-2-2*m;i>m;i--)//竖向
                        {
                                date[i][m]=number;
                                number++;
                        }
                }
        }
}

评分

参与人数 2技术分 +1 黑马币 +7 收起 理由
枫儿 + 1 + 6 赞一个!
王家胜 + 1

查看全部评分

回复 使用道具 举报 1 0
好,答案很完美,完全符合要求!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马