Java 根据输入读取正整数大小和打印三角形数
我是Java新手,一直试图搞乱一些基本的东西来提高我对Java语言的理解。以下是我试图实现的目标: 编写一个程序读取正整数大小,然后根据此输入绘制三角形。假设键入数字5,应按如下方式绘制三角形(第1行打印4个空格和数字5;第2行打印3个空格和数字4和5,以此类推): 到目前为止,我有:Java 根据输入读取正整数大小和打印三角形数,java,Java,我是Java新手,一直试图搞乱一些基本的东西来提高我对Java语言的理解。以下是我试图实现的目标: 编写一个程序读取正整数大小,然后根据此输入绘制三角形。假设键入数字5,应按如下方式绘制三角形(第1行打印4个空格和数字5;第2行打印3个空格和数字4和5,以此类推): 到目前为止,我有: import java.util.Scanner; class Triangle { public static void main(String [] args) { int
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();}}}
import java.util.Scanner;
阶级三角
{
公共静态void main(字符串[]args)
{
整数,空格;
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入编号:”);
number=in.nextInt();
对于(int i=1;i=1;j--)
{
如果(j>i)
系统输出打印(“”);
其他的
系统输出打印(j);
}
System.out.println();}
我知道我很接近,但我不想把事情搞砸,结果离解决方案更远。似乎我只需要切换我的起始号码和结束号码
如果有人能提供帮助,我们将不胜感激。我在评论中所做和提到的一些更改,效果非常好
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();}}}
import java.util.Scanner;
阶级三角
{
公共静态void main(字符串[]args)
{
整数,空格;
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入编号:”);
number=in.nextInt();
对于(int i=1;i=1;j--)
{
如果(j>i)
System.out.print(“”;//打印空间而不是_
其他的
System.out.print(number+1-j);//按递减顺序打印number+1-j
}
System.out.println();}
我将使用以下两个嵌套循环:
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);
}
for(int i=number-1;i>=0;--i){
字符串空间=新字符串(新字符[i])。替换(“\0”,”);
字符串nums=“”;
对于(int j=i+1;j修复代码:不打印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();
}
}
publicstaticvoidmain(字符串[]args){
int number=5,numberOfSpaces;
因为(int row=1;row正是您想要的方式:易于理解。享受吧
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();
}
}
}
import java.util.*;
阶级三角
{
公共静态void main(字符串[]args)
{
整数,空格;
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入编号:”);
number=in.nextInt();
对于(int i=1;i根据问题,您的输出是不匹配的。第一行包含6个空格,而不是4个空格。最后一行12345缺失。哪一行正确?不要担心把事情弄糟。您可以随时备份java文件的一个版本,并在需要时还原到它。如果您使用IDE,您可以从历史中重新加载以前的版本。非常感谢。我确信这将不是我最后的问题…:)呵呵!作为一个程序员,每次你都应该有一个问题。非常感谢。谢谢你的反馈。请参阅
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();
}
}
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();
}
}
}