`
hsyliqun21
  • 浏览: 30592 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

小程序——打印类似于三角阵的数据

    博客分类:
  • Java
阅读更多

版本一

public class pbox {
	public static void main(String[] args) {
		printBox(9);
	}

	public static void printBox(int row) {
		if (row < 1) {
			System.out.println("......");
			return;
		} else if (row > 80) {
			System.out.println("......");
			return;
		}
		for (int i = 0; i < row; i++) {
			for (int j = 0; j < row; j++) {
				int s = i + j;
				int sm = s > row - 1 ? s - (row - 1) : 0;
				int s1 = sumOfAS(1, s, 1);
				int s2 = sumOfAS(2, sm - 1, 2);
				int sf = s1 - s2;
				int x = s % 2 == 0 ? j - sm : i - sm;
				int oyeah = x + sf + 1;
				System.out.printf("%3d", oyeah);
			}
			System.out.println();
		}

	}

	// 等差数列求和
	public static int sumOfAS(int o, int n, int j) {
		return o * n + (n - 1) * n * j / 2;
	}
}

 

版本二

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		for (int x = 1; x < 10; x++) {
			for (int y = 1; y < 10; y++) {
				if ((x + y) <= 10) {
					int lineNum = x + y - 1;

					int topOfLast = (lineNum - 1) * (lineNum) / 2;

					// if direction is true,up
					// otherwise, down
					boolean direction = lineNum % 2 != 0 ? true : false;

					if (direction) {
						System.out.print("" + (topOfLast + y) + "  ");
					} else {
						System.out.print("" + (topOfLast + lineNum - y + 1)
								+ "  ");
					}
				} else {
					int innerX = x;
					int innerY = y;
					int offsetX = 1;
					int offsetY = 8;

					innerX -= offsetX;
					innerY -= offsetY;

					int lineNum = innerX + innerY - 1;

					int loopNum = 0;
					int start = 8;
					for (int j = 1; j < lineNum; j++) {
						loopNum += start;
						start--;
					}
					int topOfLast = loopNum + 45;
					
					// if direction is true,up
					// otherwise, down
					boolean direction = lineNum % 2 == 0 ? true : false;

					if (direction) {
						System.out.print("" + (topOfLast + 10 - x)
								+ "  ");						
					} else {

						System.out.print("" + (topOfLast + x - lineNum ) + "  ");
					}
				}
			}
			System.out.println();
		}

	}

}

 版本三

public class PrintNumber {

	public static void main(String[] args) {
		//a matrix of ROW*ROW
		final int ROW=9;
		
		for (int x = 1; x < ROW+1; x++) {
			for (int y = 1; y < ROW+1; y++) {
				if ((x + y) <= ROW+1) {
					int lineNum = x + y - 1;
					int topOfLast = (lineNum - 1) * (lineNum) / 2;
					boolean direction = lineNum % 2 != 0 ? true : false;
					if (direction) {
						System.out.print(String.format("%3d", (topOfLast + y)));
					} else {
						System.out.print(String.format("%3d", (topOfLast + lineNum - y + 1)));
					}
				} else {
					int innerX = x;
					int innerY = y;
					int offsetX = 1;
					int offsetY = ROW-1;
					innerX -= offsetX;
					innerY -= offsetY;
					int lineNum = innerX + innerY - 1;
					int loopNum = 0;
					int start = ROW-1;
					for (int j = 1; j < lineNum; j++) {
						loopNum += start;
						start--;
					}
					boolean direction = lineNum % 2 == 0 ? true : false;
					if(ROW%2!=0){
						if (direction) {
							System.out.print(String.format("%3d", ROW*ROW-(ROW-(x+y-ROW))*(ROW-(x+y-ROW)+1)/2 +y-ROW));
						} else {
							System.out.print(String.format("%3d", (ROW*ROW-(ROW-(x+y-ROW)+1)*(ROW-(x+y-ROW)+2)/2+1 - y+ROW)));
						}
					}else{
						if (direction) {
							System.out.print(String.format("%3d", (ROW*ROW-(ROW-(x+y-ROW)+1)*(ROW-(x+y-ROW)+2)/2+1 - y+ROW)));
						} else {
							
							System.out.print(String.format("%3d", ROW*ROW-(ROW-(x+y-ROW))*(ROW-(x+y-ROW)+1)/2 +y-ROW));
						}
					}
					
				}
			}
			System.out.println();
		}
	}
}

  

分享到:
评论

相关推荐

    基于对话框的程序设计——计算器

    在本文中,我们将深入探讨如何设计一个基于对话框的计算器程序,这与Windows操作系统附件中的计算器类似,能够执行基本的四则运算以及更复杂的科学计算任务。计算器程序是计算机科学和软件工程领域的一个基础示例,...

    Android手机写Java代码的软件(csdn)————程序.pdf

    首先,你需要下载并安装一个支持在Android设备上编写Java代码的软件,虽然题目中未提及具体的软件名称,但我们可以假设它类似于像AIDE(Android Integrated Development Environment)这样的应用。AIDE是一款专门为...

    行业文档-设计装置-正三角形纸盒的折叠方法.zip

    这类似于测试和调试阶段,确保程序的稳定性和可靠性。 7. **完成与应用**:一个完整的正三角形纸盒就完成了,它可以用于储存小物品,或者作为创意礼品包装。在IT领域,这种设计思路可以启发我们思考如何通过独特的...

    两个多边形三角化项目.rar

    本项目包含两个使用不同编程语言——C++和C#实现的多边形三角化程序。下面将详细介绍这两个项目及其涉及的关键知识点。 首先,我们要理解的是“索引三角化”。索引三角化是指通过索引数组来指定一个多边形如何被...

    求方形、圆形、三角形面积周长的C#程序

    在这个例子中,我们可以创建三个类——`Square`、`Circle`和`Triangle`,它们都继承自一个基类或实现`IGeometry`接口。 3. **多态(Polymorphism)**:多态性是指同一操作作用于不同的对象,可以有不同的解释,产生...

    JSP教程——必看.pdf

    - **2.7.1 include动作标签**:类似于`include`指令,但可以在运行时动态包含其他资源。 - **2.7.2 param动作标签**:用来传递参数到`include`或`forward`动作标签中。 - **2.7.3 forward动作标签**:用于将请求...

    Pascal 函数集——Delphi 控件属性集

    24. **BlockRead函数**:读取一个或多个记录到变量中,适用于结构化数据的批量读取。 25. **BlockWrite函数**:从变量中写入一个或多个记录,与BlockRead相对,用于结构化数据的批量写入。 26. **BorderStyle属性*...

    很好用的分形计算,里面还有验证的程序。我一直在用,推荐给大家

    谢尔宾斯基地毯类似于三角形,但它是基于正方形的。在这个过程中,将一个正方形划分为9个相同的小正方形,移除中间的一个,然后对剩下的8个小正方形进行相同的操作。同样,通过Box Counting算法计算其分形维数,以...

    yanghuisanjiao.rar_out

    杨辉三角形,又称帕斯卡三角形,是组合数学中的一个经典问题,其形状类似于一个倒立的三角形,每行的数字代表了二项式展开式的系数。在编程领域,特别是使用C++语言实现杨辉三角形的程序设计,不仅能够锻炼程序员的...

    001--OpenGL 快速入门案例解析.pdf

    在现代OpenGL中,着色器是用来替换固定管线(Fixed Function Pipeline)的工具,它们是运行在GPU上的小程序,用来处理图形数据。本文件强调了GLShaderManager类的作用,它允许创建和管理着色器,同时提供了一组...

    用SIoT秒搭STEM课堂物联网服务器——以基于microbit的热辐射实验为例(上)1

    在此次创新实践中,我们以基于micro:bit的热辐射实验为例,将SIoT应用于小学五年级科学教材中光和热的关系教学中。这个实验不仅将理论知识与实践操作相结合,更通过引入物联网技术,让学生能够实时观察和记录温度...

    浙大acm程序设计竞赛模板

    - **子阵和**:子阵和与子段和类似,但更加侧重于二维数组的情况。 #### 四、数论 4. **数论**:这部分探讨了数论中的基本概念和算法。 - **阶乘最后非0位**:介绍了如何快速找到阶乘结果的末尾非零数字。 - **...

    程序设计协会第一届九韶杯题解 .pdf

    九韶杯可能是一个地区性的或高校间组织的竞赛活动,类似于蓝桥杯等其他知名的程序设计竞赛。 描述中说明该文档包含了对竞赛题目的分析和C++/JAVA语言的源码。这意味着文档将不仅提供解题思路,还包括实现这些思路的...

    由三角波生成的李萨如图形 (2012年)

    然而,在这篇发表于2012年的论文中,研究人员通过使用科学计算软件Mathematica,对由三角波生成的李萨如图形进行了数值模拟研究,并与传统的简谐振动李萨如图形进行了比较。 首先,简谐振动是振动的一种理想形式,...

    matlab实用程序百例

    11. **枝干图**:类似于条形图,但更适合于表示时间序列数据。 12. **罗盘图**:用于展示方向数据,通常用于导航系统或风向统计等领域。 13. **轮廓图**:用于显示二维数据的轮廓线条,有助于理解数据分布特征。 ...

    jisuanji.zip_计算机

    "jisuanji.m"可能包含对应的方法,如`sin(x)`、`cos(x)`和`tan(x)`,接受一个角度值(可能是弧度或度数,取决于具体实现),并返回相应的三角函数值。 除了基础运算和三角函数,一个完善的计算器还可能包含其他高级...

    《计算机应用基础》操作系统四.docx

    以下是关于《计算机应用基础》中提到的四个主要应用程序——记事本、写字板、计算器和画图的详细说明。 1. **记事本**:记事本是一款轻量级的文本编辑器,适用于创建和编辑纯文本文件。纯文本文件不包含任何图像或...

Global site tag (gtag.js) - Google Analytics