版本一
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代码的软件,虽然题目中未提及具体的软件名称,但我们可以假设它类似于像AIDE(Android Integrated Development Environment)这样的应用。AIDE是一款专门为...
这类似于测试和调试阶段,确保程序的稳定性和可靠性。 7. **完成与应用**:一个完整的正三角形纸盒就完成了,它可以用于储存小物品,或者作为创意礼品包装。在IT领域,这种设计思路可以启发我们思考如何通过独特的...
本项目包含两个使用不同编程语言——C++和C#实现的多边形三角化程序。下面将详细介绍这两个项目及其涉及的关键知识点。 首先,我们要理解的是“索引三角化”。索引三角化是指通过索引数组来指定一个多边形如何被...
在这个例子中,我们可以创建三个类——`Square`、`Circle`和`Triangle`,它们都继承自一个基类或实现`IGeometry`接口。 3. **多态(Polymorphism)**:多态性是指同一操作作用于不同的对象,可以有不同的解释,产生...
- **2.7.1 include动作标签**:类似于`include`指令,但可以在运行时动态包含其他资源。 - **2.7.2 param动作标签**:用来传递参数到`include`或`forward`动作标签中。 - **2.7.3 forward动作标签**:用于将请求...
24. **BlockRead函数**:读取一个或多个记录到变量中,适用于结构化数据的批量读取。 25. **BlockWrite函数**:从变量中写入一个或多个记录,与BlockRead相对,用于结构化数据的批量写入。 26. **BorderStyle属性*...
谢尔宾斯基地毯类似于三角形,但它是基于正方形的。在这个过程中,将一个正方形划分为9个相同的小正方形,移除中间的一个,然后对剩下的8个小正方形进行相同的操作。同样,通过Box Counting算法计算其分形维数,以...
杨辉三角形,又称帕斯卡三角形,是组合数学中的一个经典问题,其形状类似于一个倒立的三角形,每行的数字代表了二项式展开式的系数。在编程领域,特别是使用C++语言实现杨辉三角形的程序设计,不仅能够锻炼程序员的...
在现代OpenGL中,着色器是用来替换固定管线(Fixed Function Pipeline)的工具,它们是运行在GPU上的小程序,用来处理图形数据。本文件强调了GLShaderManager类的作用,它允许创建和管理着色器,同时提供了一组...
在此次创新实践中,我们以基于micro:bit的热辐射实验为例,将SIoT应用于小学五年级科学教材中光和热的关系教学中。这个实验不仅将理论知识与实践操作相结合,更通过引入物联网技术,让学生能够实时观察和记录温度...
- **子阵和**:子阵和与子段和类似,但更加侧重于二维数组的情况。 #### 四、数论 4. **数论**:这部分探讨了数论中的基本概念和算法。 - **阶乘最后非0位**:介绍了如何快速找到阶乘结果的末尾非零数字。 - **...
九韶杯可能是一个地区性的或高校间组织的竞赛活动,类似于蓝桥杯等其他知名的程序设计竞赛。 描述中说明该文档包含了对竞赛题目的分析和C++/JAVA语言的源码。这意味着文档将不仅提供解题思路,还包括实现这些思路的...
然而,在这篇发表于2012年的论文中,研究人员通过使用科学计算软件Mathematica,对由三角波生成的李萨如图形进行了数值模拟研究,并与传统的简谐振动李萨如图形进行了比较。 首先,简谐振动是振动的一种理想形式,...
11. **枝干图**:类似于条形图,但更适合于表示时间序列数据。 12. **罗盘图**:用于展示方向数据,通常用于导航系统或风向统计等领域。 13. **轮廓图**:用于显示二维数据的轮廓线条,有助于理解数据分布特征。 ...
"jisuanji.m"可能包含对应的方法,如`sin(x)`、`cos(x)`和`tan(x)`,接受一个角度值(可能是弧度或度数,取决于具体实现),并返回相应的三角函数值。 除了基础运算和三角函数,一个完善的计算器还可能包含其他高级...
以下是关于《计算机应用基础》中提到的四个主要应用程序——记事本、写字板、计算器和画图的详细说明。 1. **记事本**:记事本是一款轻量级的文本编辑器,适用于创建和编辑纯文本文件。纯文本文件不包含任何图像或...