3

我是 Java 新手,现在我想更好地学习 for 循环。我做了一些例子,但我不知道如何做一个看起来像这样的三角形:对于 n=6:

111111 
22222
3333
444
55
6

到目前为止我的代码:

class Pyramid
{
public static void main (String[] args)
{
   int i,n=9,j; 
   for(i=1;i<=n;i++)
   {
       for(j=1;j<=i;j++)  {          
System.out.print(i); }      
System.out.print("\n");        
}}}

但我设法做到的看起来像这样:

1
22
333
4444
55555
666666

如何以相反的顺序制作它?

4

5 回答 5

4

你的问题是你的外for循环是从6to 1,所以你需要扭转它。

改变

for(i=n;i>=1;i--) {

for(i = 1; i <= n; i++) { 

进一步解释,以便您了解for循环内发生的事情:

循环在for三个子句上运行:从哪里开始、循环运行的条件以及运行后要做什么。

------v
for(i = 1; i <= n; i++) {

这是任务。您将变量设置为一个数字,这是循环开始的地方。在这种情况下,我们从 开始i = 1,因为我们只想1在第一行打印一个。在第三个子句中,我们将增加它(阅读:加一),然后再次运行循环。

--------------v
for(i = 1; i <= n; i++) {

这是条件。每当此条件评估为 时,循环就会运行true。换句话说,如果n = 6,这个循环将在 时运行i <= 6

--------------------v
for(i = 1; i <= n; i++) {

这是每次执行循环时会发生的情况。当它运行一次之后i = 1,我们会递增i,所以现在i = 2。这将发生直到条件 ( i <= n) 评估为false,即何时i = 7。如果条件为false,则循环将终止。

于 2013-09-29T22:01:17.443 回答
4

我们可以使用一个函数int numberForRow(int row)来执行适当的转换。然后该函数可以像r = numberForRow(i); print(r). 它需要映射这个:

行 (i) -> 显示编号 (r)
6 1
5 2
4 3
3 4
2 5
1 6

我想你可以写它:)

看看输入 (i) 和输出 (r) 之间的关系——注意它们总是加起来是相同的值可能很有用,所以一点点数学就可以解决问题。

(虽然函数不是严格要求的,但我发现这样的函数可以帮助解决问题,尤其是在这种情况下,可以很好地说明转换 - 它也适用于“更高级”转换的情况,例如在原始问题;-)

于 2013-09-29T22:05:15.713 回答
2
public class Pyramid {

    public static void main (String[] args)
    {
        int i,n=9,j; 
        for(i=1;i<=n;i++)
        {
            //for(j=1;j<=i;j++)  { 
            for(j=n;j>=i;j--) {
                System.out.print(i);
            }      
            System.out.print("\n");        
        }
    }
}

这应该会有所帮助。

于 2014-06-06T18:55:59.100 回答
2

可以使用以下方法完成:

public class Main {

    public static void main(String[] args) {

        int n = 6;
        int m =n;

        for (int i = 1; i <= n; i++,m--) {
            for (int j = 1; j <= m; j++) {
                System.out.print(i);
            }
            System.out.println();
        }

    }
}
于 2014-09-14T18:37:53.443 回答
0

如果要打印三角形数字,请使用以下代码

`public class Triangular{
 public static void main(String[] args) {
    int i = 0;
    int j =0;
    int count =0;
    for (i=1;i<=10;i++){
        count = 0;  // This is a program to print triangular numbers in JAVA
        for(j=1;j<=i;j++){
            count = count + j;
        }
            System.out.println(count);
        }
    }
}`
于 2018-04-25T14:46:49.910 回答