Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据输入读取正整数大小和打印三角形数_Java - Fatal编程技术网

Java 根据输入读取正整数大小和打印三角形数

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

我是Java新手,一直试图搞乱一些基本的东西来提高我对Java语言的理解。以下是我试图实现的目标:

编写一个程序读取正整数大小,然后根据此输入绘制三角形。假设键入数字5,应按如下方式绘制三角形(第1行打印4个空格和数字5;第2行打印3个空格和数字4和5,以此类推):

到目前为止,我有:

 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();
            }
        }
    }