如何修改此程序?class Output { public static void main(String[] args) { int n=Integer.parseInt(args[0]); for(int i=0;i<n;i++){ for (int j=n-i;j>0;j--) { System.out.print("m "); } System.out.println(); } } }
这样可以实现这个算法,不知那位大哥能使算法更简单一些, 在下不胜感激! class Output { public static void main(String[] args) { int n=Integer.parseInt(args[0]); for(int i=0,m=1,a=0,b=1;i<n;a++,m=m+a,b++,i++){ for (int j=n-i,x=m,y=b;j>0;++y,x=x+y,j--) { System.out.print(x+" "); } System.out.println(); } } }
我写的要复杂些。。多指教。谢谢。。 import java.io.*; public class test { public static void main(String[] args) throws IOException { for (;;) { BufferedReader in = new BufferedReader(newInputStreamReader(System.in)); String str = in.readLine(); if (str.equals("q")) { break; } else { int i = 1; int sum = 0; int p = 2; for (int j=0;j<= Integer.parseInt(str)-1;j++) { i = i + j; sum = i; System.out.print(i + " "); for (int f = p;f <= Integer.parseInt(str);f++) { sum = sum + f; System.out.print(sum + " "); if (f==Integer.parseInt(str)) { System.out.println(); p++; }
} } } } } }
这段程序试过了,可以运行 主要思路就是由位置坐标求出某位置上的数位于斜着的第几排, 由这个排数算出这个数是多少 import java.io.*; public class Triangle { public static void main(String args[]) { int parameter=0; //保存参数 System.out.println("请输入参数:"); BufferedReader reader = new BufferedReader(new InputStreamReader(System. in)); try { parameter = Integer.parseInt(reader.readLine()); } catch (IOException ex) { } catch (NumberFormatException ex) { } for (int i = 1; i <= parameter; i++) { for(int j=1;j<=parameter+1-i;j++) { System.out.print(getNum(j,i)+" "); //第i行第j列的坐标为(j,i) } System.out.println() ; } } static int getNum(int x, int y) { //得到坐标为(x,y)的数字 int index = x + y - 1; //index为此数字斜着在第几排,如4,5,6在第三排 int sum1 = (1 + index - 1) * (index - 1) / 2; int sum2 = x; return sum1 + sum2; } }
{
public static void main(String[] args)
{
int n=Integer.parseInt(args[0]);
for(int i=0;i<n;i++){
for (int j=n-i;j>0;j--)
{
System.out.print("m "); }
System.out.println();
}
}
}
在下不胜感激!
class Output
{
public static void main(String[] args)
{
int n=Integer.parseInt(args[0]);
for(int i=0,m=1,a=0,b=1;i<n;a++,m=m+a,b++,i++){
for (int j=n-i,x=m,y=b;j>0;++y,x=x+y,j--)
{
System.out.print(x+" "); }
System.out.println();
}
}
}
import java.io.*;
public class test
{
public static void main(String[] args) throws IOException
{
for (;;)
{
BufferedReader in = new BufferedReader(newInputStreamReader(System.in));
String str = in.readLine();
if (str.equals("q"))
{
break;
}
else
{
int i = 1;
int sum = 0;
int p = 2;
for (int j=0;j<= Integer.parseInt(str)-1;j++)
{
i = i + j;
sum = i;
System.out.print(i + " ");
for (int f = p;f <= Integer.parseInt(str);f++)
{
sum = sum + f;
System.out.print(sum + " ");
if (f==Integer.parseInt(str))
{
System.out.println();
p++;
}
}
}
}
}
}
}
主要思路就是由位置坐标求出某位置上的数位于斜着的第几排,
由这个排数算出这个数是多少
import java.io.*;
public class Triangle {
public static void main(String args[]) {
int parameter=0; //保存参数
System.out.println("请输入参数:");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.
in));
try {
parameter = Integer.parseInt(reader.readLine());
} catch (IOException ex) {
} catch (NumberFormatException ex) {
}
for (int i = 1; i <= parameter; i++) {
for(int j=1;j<=parameter+1-i;j++)
{
System.out.print(getNum(j,i)+" "); //第i行第j列的坐标为(j,i)
}
System.out.println() ; } } static int getNum(int x, int y) { //得到坐标为(x,y)的数字
int index = x + y - 1; //index为此数字斜着在第几排,如4,5,6在第三排
int sum1 = (1 + index - 1) * (index - 1) / 2;
int sum2 = x;
return sum1 + sum2;
}
}
public void print(int i){
System.out.println("1 3 6 10 15");
System.out.println("2 5 9 14");
System.out.println("4 8 13");
System.out.println("7 12");
System.out.println("11");
}public static void main(String[] args) {
if(args.length==0)
{
System.exit(0);
}
print(args[0]);}
}
根据您的重要思想的提示以及您提供的现有代码,我稍微加了点
请lz批评指正,谢谢:
class Output
{
public static void main(String[] args)
{
int n=Integer.parseInt(args[0]);
int sum = 1;
for(int i=0;i<n;i++){
int mysum = sum;
for (int j=n-i,inc = i+2;j>0;j--,inc++)
{
System.out.print(" "+mysum);
mysum = mysum + inc ;
}
sum = sum + i + 1;
System.out.println();
}
}
}
public class Output1
{
public static void main(String args[]) throws Exception
{
try{
try{
int n;
n=Integer.parseInt(args[0]);
}
catch(NumberFormatException ee){
System.out.println("请输入正确的数字!");
}
int n=Integer.parseInt(args[0]);
for(int i=0,m=1,a=0,b=1;i<n;a++,m=m+a,b++,i++){
for (int j=n-i,x=m,y=b;j>0;++y,x=x+y,j--)
{
System.out.print(x+" "); }
System.out.println();
}
}
catch(Exception e){
System.out.println("有错误");
}
}
}