蛇形填数(二人)变形之三角形
来源:互联网 发布:施温格 知乎 编辑:程序博客网 时间:2024/06/08 07:47
1 2 3 4 512 13 14 611 15 710 89跟蛇形填数一样,只是填数要求按照三角形填。注意每组数据之间用空行隔开
- 输入
- 第一行有一个N,表示N组测试数据
接下来每组数据包括一个数字X,表示三角形的边长,0< X <1000 - 输出
输出之后填好之后的图
package MainTest;import java.util.*;public class Main { public static void main(String[] args) { Scanner in= new Scanner(System.in); int k=in.nextInt(); while(k-->0){ int n=in.nextInt(); int[][] a=new int[n][n]; for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) a[i][j]=0;} int count=1; int x=0,y=0; a[x][y]=1; //蛇形填数的变形,蛇形是控制四个方向,这个是三个方向,思路还是一样,控制数组下标变化即可 while(count<((n*(n+1))/2)){ while(y<n-1&&a[x][y+1]==0) {a[x][++y]=++count;} while(x<n-1&&y>0&&a[x+1][y-1]==0){a[++x][--y]=++count;} while(x>0&&a[x-1][y]==0) {a[--x][y]=++count;} }//注意此处的打印方法,去掉不必要的列,只打印需要的列,思想借鉴!!!! for(int i=0;i<n;i++) { for(int j=0;j<n-i-1;j++){ System.out.print(a[i][j]+" "); } System.out.print(a[i][n-i-1]); System.out.println(); } } } }
回顾:打印形状这类题,实质就是观察图形行和列的变化规律,结合数组下标变化即可,一定主要变化方向和数组越界问题,同时打印结果也要学会控制
阅读全文
0 0
- 蛇形填数(二人)变形之三角形
- 蛇形填数(二人)变形之三角形
- 蛇形填数 (二)
- 蛇形填数(二)
- 蛇形填数(二)
- 蛇形填数(方块填数+三角形填数)
- nyoj-852-蛇形填数(二)
- NYOJ852 蛇形填数(二)
- NYOJ 852 蛇形填数(二)
- NYOJ蛇形填数(二)
- 852 蛇形填数(二)【模拟】
- 蛇形填数(二)--求值法
- 题目三 蛇形填数(二)
- 蛇形填数之倒填
- NYOJ_33 蛇形填数(蛇形矩阵)
- nyoj 852 蛇形填数(二)【循环+数组】
- 南阳OJ 852题 蛇形填数(二)
- 南阳OJ 852题 蛇形填数(二)
- matlab handles结构体及用法
- Map.Entry和map.entrySet()---更好的遍历Map
- linux 系统调用与标准库调用的区别详细解析(转)
- C++ 输入输出机制
- 多重背包
- 蛇形填数(二人)变形之三角形
- Hadoop的Shuffle过程
- c++ 11 之 tuple类型
- 博客人生
- lua语言学习九table
- 多线程系列一
- POJ
- c#实现分组服务器,单一无重复生成ID
- python求解next数组实现KMP算法