我是Java的新手,并且一直试图搞砸一些基本的东西来增加我对语言的理解。这是我正在努力实现的目标:
编写程序以读取正整数大小,然后根据此输入绘制三角形。假设您键入数字5,您应该绘制一个三角形,如下所示(第1行打印4个空格,第5行;第2行打印3个空格,数字4和5等):
5
45
345
2345
到目前为止,我有这个:
import java.util.Scanner;
class Triangle
{
public static void main(String [] args)
{
int number, space;
Scanner in=new Scanner(System.in);
System.out.println("Enter The Number:");
number = in.nextInt();
for (int i=1; i<=number; i++)
{
for (int j = number; j>=1; j--)
{
if (j>i)
System.out.print("_");
else
System.out.print(j);
}
System.out.println();}}}
我知道我很接近,但是不想搞砸任何东西并最终从解决方案中走出来。看来我只需要切换我的开始和结束数字。
如果有人能提供帮助,我们将不胜感激。
答案 0 :(得分:1)
我会使用以下两个嵌套循环:
for (int i=number-1; i >= 0; --i) {
String spaces = new String(new char[i]).replace("\0", " ");
String nums = "";
for (int j=i+1; j <= number; ++j) {
nums += String.valueOf(j);
}
System.out.println(spaces + nums);
}
答案 1 :(得分:0)
我在评论中已经完成并提到了一些变化,它完美无缺!
import java.util.Scanner;
class Triangle
{
public static void main(String [] args)
{
int number, space;
Scanner in=new Scanner(System.in);
System.out.println("Enter The Number:");
number = in.nextInt();
for (int i=1; i<=number; i++)
{
for (int j = number; j>=1; j--)
{
if (j>i)
System.out.print(" "); //print space instead of _
else
System.out.print(number+1-j); //print number+1-j which will be you decreasing Sequence
}
System.out.println();}}}
答案 2 :(得分:0)
修复代码:而不是打印出j计数器:
System.out.print(j);
您想要打印
System.out.print(number -(j-1));
另一种解决方案:
public static void main(String [] args) {
int number =5, numberOfSpaces;
for (int row=1; row<= number ; row++) {
numberOfSpaces = number - row;
for (int column=1; column<= number ; column++) {
if(column<=numberOfSpaces) {
System.out.print(" ");
}else {
System.out.print(column);
}
}
System.out.println();
}
}
更短版本完全相同:
public static void main(String [] args) {
int number =5, numberOfSpaces;
for (int row=1; row<= number ; row++) {
numberOfSpaces = number - row;
for (int column=1; column<= number ; column++) {
System.out.print( (column<=numberOfSpaces) ? " " : column);
}
System.out.println();
}
}
答案 3 :(得分:0)
只是你想要的方式:易于理解。享受!
import java.util.*;
class Triangle
{
public static void main(String [] args)
{
int number, space;
Scanner in=new Scanner(System.in);
System.out.println("Enter The Number:");
number = in.nextInt();
for (int i=1; i<=number; i++)
{
for (int j = 1; j<=number; j++)
{
if (j>number-i) /**the only problem you were having in your code was that it was printing it in reverse.. I reversed the loop and modified` to do so*/
System.out.print(j);
else
System.out.print(" ");
}
System.out.println();
}
}
}