黑马程序员技术交流社区
标题:
根据现象写代码
[打印本页]
作者:
王家胜
时间:
2013-12-1 22:00
标题:
根据现象写代码
本帖最后由 王家胜 于 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
作者:
珊湖礁
时间:
2013-12-1 22:04
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++; } } } }
作者:
珊湖礁
时间:
2013-12-1 22:04
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++;
}
}
}
}
作者:
王家胜
时间:
2013-12-1 22:10
好,答案很完美,完全符合要求!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2