Java程序按顺序打印数字

时间:2013-10-21 15:06:35

标签: java

我正在用数字编写这个程序,但我很困难,需要一些帮助。

到目前为止

代码:

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.print("Oppgi øvre grense: ");
    int Number = in.nextInt(); 
    int tall = 1;
    for(int t = 0; tall <=45; tall++){
            System.out.println(" " + tall);
    }   
}

目标:让第一行包含一个数字,第二行包含两个数字,第三行包含三个数字等。 输出应该看起来像金字塔,每行的数字之间的间距不同。

如果有人可以帮我解决方案代码。谢谢。

Oppgiøvregrense:45  1  2 3  4 5 6  7 8 9 10  11 12 13 14 15  16 17 18 19 20 21  22 23 24 25 26 27 28  29 30 31 32 33 34 35 36  37 38 39 40 41 42 43 44 45

3 个答案:

答案 0 :(得分:3)

outer loop{
    decides number of numbers in one line
    inner loop{
        prints actual numbers.
        Please keep track of the numbers you have printed so far
        Inner loop starts at numbers printed so far
        It will have passes = number of numbers to print
    }
}  

这里有两个截然不同的任务:
1.确定在一行中打印多少个数字
2.实际打印数字

由于这种情况,一个循环决定要打印多少个数字:外循环。它是外循环的原因是因为您需要清楚地了解在实际打印之前需要打印多少个数字 另一个循环:内循环执行实际打印。

因此,一旦开始使用外循环,您的内循环将开始打印 然后它将查看是否已打印该通行证的最大数字 如果是,请停止。然后,增加外部循环。回来,打印,检查,然后再做。

够简单吗?

答案 1 :(得分:0)

public class RareMile {

    public static void main (String[] args){
        printNum(5);
    }

    public static void printNum (int n){
        int k=1, sum=0;
        for (int i=1; i<=n; i++){
            sum=0;
            for(int j=1; j<=i; j++){    
                System.out.print(k);
                sum = sum+k;
                k++;                
                }
            System.out.print("            =" + sum);
            System.out.println();
        }        
    }

}

真正的问题是如何只使用一个for循环?

答案 2 :(得分:-1)

跟踪行号 e.g。

int line = 1; // line number
int count = 0; // number of numbers on the line
for(int x = 0; x <= 45; x++){
    if (count == line){
        System.out.println(""); // move to a new line
        count = 0; // set count back to 0
        line++; // increment the line number by 1
    }
    System.out.print(x); // keep on printing on the same line
    System.out.print(" "); // add a space after you printed your number
    count++;
}