Java中的金字塔模式 - 正确的数字

时间:2015-06-26 15:14:06

标签: java

我正在尝试生成以下循环:

   1
  121
 12321
1234321  

循环正在按预期工作,但数字显示不正确。如果有一个常量变量要输入到外部循环中,则创建循环以便灵活使用。

现在,输出是:

   1   
  123  
 12345 
1234567
// line loop
public static void main(String[] args) {
    for (int line = 1; line <= 4; line++) {
        // space loop
        for (int space = 1; space <= -1 * line + 4; space++) {
            System.out.print(" ");
        }

        // number loop
        for (int num = 1; num <= 2 * line - 1; num++) {
            System.out.print(num);
        }

        // space loop
        for (int space = 1; space <= -1 * line + 4; space++) {
            System.out.print(" ");
        }

        System.out.println();
    }
}

1 个答案:

答案 0 :(得分:-1)

这个怎么样:

struct Coor 
{ 
    double x1; double y1; //Coordinate of Node 1
    double x2; double y2; //Coordinate of Node 2
    std::vector<int> C1; //Index of the edges connected to Node 1
    std::vector<int> C2; //Index of the edges connected to Node 2
};

std::vector<Coor> Connection_S(std::vector<Coor> Nodes)
{
    N = Nodes.size();

    for (i = 0; i < N; ++i)
    {
        for (j = 0; j < N; ++j)
        {
            if (i == j)
            { 
                continue; 
            }
            if ( ( Nodes[i].x1 == Nodes[j].x1 && Nodes[i].y1 == Nodes[j].y1 ) ||
                 ( Nodes[i].x1 == Nodes[j].x2 && Nodes[i].y1 == Nodes[j].y2 ) )
            {
                Nodes[i].C1.push_back(j);
            }
            if ( ( Nodes[i].x2 == Nodes[j].x1 && Nodes[i].y2 == Nodes[j].y1 ) ||
                 ( Nodes[i].x2 == Nodes[j].x2 && Nodes[i].y2 == Nodes[j].y2 ) )
            {
                Nodes[i].C2.push_back(j);
            }
        }
    }
    return Nodes;
}

说明:

Iteration = public static void main(String[] args) { // line loop for (int line = 1; line <= 4; line++) { // space loop for (int space = 1; space <= -1 * line + 4; space++) { System.out.print(" "); } // number loop for (int num = 1; num <= 2 * line - 1; num++) { if (num > (int) (2 * line) / 2) { System.out.print(((int) (2 * line)) - num); } else { System.out.print(num); } } // space loop for (int space = 1; space <= -1 * line + 4; space++) { System.out.print(" "); } System.out.println(); } } var&#34;数字循环&#34;

Cycles =代码的num部分,应始终为奇数。

当Iteration int大于下一个int时,从半周期开始(应该是一个浮点数,所以我们需要下一个int),Cycles int减去迭代int应该是print,所以我们的输出开始打印递减顺序。