请各位java高手帮帮忙,程序是这样的,输入一个3,打印如下图形

请各位高手给出满意而又简单的程序

System.out.print(i - Math.max(Math.abs(x - i), Math.abs(y - i)) + " ");

Math.abs(int) 是返回int的绝对值
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-25
public class T {
public static void main(String[] args) {
paint(5);
}

public static void paint(int i) {
for (int x = 1; x <= i * 2 - 1; x++) {
for (int y = 1; y <= i * 2 - 1; y++) {
System.out.print(i - Math.max(Math.abs(x - i), Math.abs(y - i)) + " ");
}
System.out.println();
}
}
}追问

你可不可以把这个程序的编程思想写出来,特别是这句话System.out.print(i - Math.max(Math.abs(x - i), Math.abs(y - i)) + " ");,我会非常感激你的

追答

//你很搞笑好吗,我正在加注释,你就采纳里别人的。不说了,加黑名单了。

public class T {
public static void main(String[] args) {
paint(3);
}

public static void paint(int i) {
// i 既是中心点最大值的数字
for (int x = 1; x <= i * 2 - 1; x++) {
for (int y = 1; y <= i * 2 - 1; y++) {
// 当前位置 横坐标 = x 纵坐标 = x
// 中心点 横坐标 = i,纵坐标 = i
int x_length = Math.abs(x - i);// 横坐标与中心点的距离
int y_length = Math.abs(y - i);// 纵坐标与中心点的距离
int max_length = Math.max(x_length, y_length);// 当前位置与中心点的距离
int length = i - max_length;// 当前位置与最外侧的距离,也就是说当前位置是丛外书第几层
System.out.print(length + " ");
}
System.out.println();
}
}
}

追问

刚才那不是你回答的吗?

追答

算了,刚才说话重了。现在心情好多了。

追问

不好意思,我刚才没看清是谁就采纳了,你别介意,我不可能干那种事情的,希望你多多谅解,能否把你的QQ号留下,我的是846127386,以后遇到问题的话还要向您请教,我为我刚才的行为深表道歉,对不起

追答

fuhaiwei@126.com,我看电子邮件的速度比较快。

追问

OK,谢啦

找个JAVA高手帮忙分析下这段代码有什么问题,我在自学JAVA,现在写的这个...
有很多种可能哦,有可能是你的驱动有问题哦,你用的是2008还是2000还是2005,这些版本的驱动不同哦,还有在这里你没有用预处理,你为什么还要用preperStatement()这个方法呢,这样会降低效率的,没有预处理的时候还是用statement()吧

Java 中怎么用对话框输入三个数 并用对话框输出其平均值 帮忙写一下...
double d3 = s.nextDouble();double d = (d1 + d2 + d3) \/ 3;System.out.println("the result: " + d);} }

java语言编写一个程序,从键盘输入一个整数,将其转换为二进制数并输出...
public class Main{public static void main(String[] args) {System.out.println("请输入整数:");Scanner sc=new Scanner(System.in);String input = sc.nextLine();\/\/读取输入字符try{int i = Integer.parseInt(input);\/\/string转intString result = Integer.toBinaryString(i);\/\/十进制转二...

请高手帮忙编写一个java程序,不胜感激!
\/\/求取两个日期之间相差得天数 public static long getJulianDay(Date dt1, Date dt2){ java.util.Date date1 = new java.util.Date(dt1.year, dt1.month-1, dt1.day-1);java.util.Date date2 = new java.util.Date(dt2.year, dt2.month-1, dt2.day-1);long millionSecondsDiffer ...

请java高手帮忙,解决一个难题呀?心急呀!
在你的内容中首先你表达了求助的意思,然后应该是粘贴了一份其他其他来源的资料,在这两段之间最好有个过度性的转折,否则会感到很突兀。 最后的“几个需要注意的问题”最是奇怪,这是你提出的问题还是资料中别人提出的问题呢?我很难理解。好了。综上所述,目前我很难帮到你。希望你能够吧思路和...

用Java编写一个完整的递归程序,实现如下功能:从键盘输入数字n,程序自动...
public static void main(String[] args){ System.out.println("输入n,按回车:"); Scanner s = new Scanner(System.in); Integer n = Integer.parseInt(s.next()); Integer re = factorial(1, n); System.out.println(re); } public static Integer factorial(Integer...

JAVA高手帮帮忙。帮忙做几个题目。
3.A 4.A 5.B (我不确定) JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。6.A...

JAVA小程序,大神帮帮忙 红包感谢
import java.util.Scanner;public class test1 {public static void main(String args[]) {Scanner reader = new Scanner(System.in);System.out.println("请输入用户名 回车结束:");String username = reader.nextLine();System.out.println("请输入密码:");String password = reader.nextLine();...

用java编一个程序,要求如下,希望哪位大虾帮帮忙,很急!!!
jp3.add(xia);jp3.add(jieshu);c.add(jp3, BorderLayout.SOUTH);xia.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { chuti();} });jieshu.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { jl.setText("...

java设计: 输入一个小数,分别输出它的整数部分与小数部分。
import java.util.Scanner;public class Test { public static void main(String[] args) { System.out.print("请输入一个小数:");double input = new Scanner(System.in).nextDouble();String[] ary = String.valueOf(input).split("\\\\.");System.out.println("整数部分: " + ary[0]);S...

相似回答
大家正在搜