Java实现回形数,只利用数组、循环和if-else语句
import java.util.Scanner;
public class learn {
public static void main(String[] args){
System.out.println("请输入你需要打印多少阶的回形数:");
Scanner scan = new Scanner(System.in);
int num = scan.nextInt(); // 接收num,则打印num阶的回形数
scan.close();
int[][] hui = new int[num][num];
for(int i = 0,j = 0,flag = 0,theNum = 1; theNum<=(num*num);) { // i可视为二维数组的第i+1排,j可视为二维数组的j+1列;flag表示回形数进行的第flag+1圈;theNum为赋的值。
if(j<num-flag) { //回形数向右走时
hui[i][j] = theNum;
j++;
theNum++;
}
else if(i+1<num-flag) { //回形数向下走时
hui[i+1][j-1] = theNum;
theNum++;
i++;
}
else {
for(int m = num-flag-1,n = num -flag-1;;) {
if(n>flag) { //回形数向左走时
n--;
hui[m][n] = theNum;
theNum++;
}
else if(m>flag+1) { //回形数向右走时
m--;
hui[m][n] = theNum;
theNum++;
}
else {
i = flag+1;
j = flag+1;
flag++;
break;
}
}
}
}
for(int a = 0;a<num;a++) {
for(int b = 0;b<num;b++) {
System.out.printf("%d ",hui[a][b]);
}
System.out.println("\n");
}
}
}
最新文章
- VS2012下X64平台嵌入汇编程序
- LeetCode - Convert Sorted Array to Binary Search Tree
- SSH客户端(如PuTTY)ssh远程登录Linux非常慢的解决方法
- flash文件制作笔记
- Https要点
- WebUI框架
- LeetCode题解——Reverse Integer
- POJ 2253 Frogger floyd算法
- PHP多维数组元素操作类
- java - day006 - 构造方法
- <;算法图解>;读书笔记:第4章 快速排序
- 如何设计一个restful风格的API
- Visual Studio Code 支持TensorFlow配置支持
- 2017-12-15python全栈9期第二天第七节之布尔值转数字
- webstorm的快捷键总结
- Android分享内容和接收分享内容小小实现
- Centos6.8 smokeping安装
- 软件测试--w模型
- div 内table 居中实现代码
- 容器(Container)Frames和Panels