如何在循环中增加和减少一系列数字

时间:2018-11-27 17:30:27

标签: c++ loops

我试图得到这样的输出:

               1
           2   4   2
        3  5   7   5   3
    4   6  8   10  8   6   4
5   7   9  11  13  11  9   7   5

我写了这段代码:

int input_n = 0;
int x;
int rowNumber = 1;

std::cin >> input_n;

int result = 0;

for (int i = 1; i <= input_n; i++)
{
    std::cout << std::setw(10 - i);
    rowNumber = i;
    int addCounter = rowNumber - 1;

    if (rowNumber == 1)
    {
        std::cout << std::setw(11) << rowNumber;
    }
    else 
    {
        for (x = 1; x <= rowNumber + 1; x++)
        {
            std::cout << rowNumber << std::setw(3);
            // What Should do here?
        }

    }
    std::cout << std::endl;

}

最后我得到以下输出:

              1
           2  2  2
         3  3   3   3
       4   4   4   4   4
     5   5   5   5   5   5

我只是感到困惑,我如何才能像上面的输出一样?我尝试了很多次循环。但是我没有得到正确的输出。

2 个答案:

答案 0 :(得分:2)

这是您的代码的一个简短示例:

int global_i = 0;
Module [] mods;

void setup() {
    size(500, 400);
    mods = new Module[5];
    for (int i = 0; i < 5; ++ i ) {
        mods[i] = new Module(i*50+50, i);
    }
}

void draw() {
    background(50);
    for (int i = 0; i < 5; ++ i ) {
        mods[i].display();
    }
}

void keyPressed() {
    if (keyCode == UP) {
        println("up");
        mods[global_i].inc();
    } 
    if (keyCode == DOWN) {
        mods[global_i].dec();
    }
    if (keyCode == LEFT) {
        global_i--; 
        if (global_i < 0)
            global_i = 4;
    } 
    if (keyCode == RIGHT) {
        global_i++;
        if (global_i > 4)
            global_i = 0;
    } 
}

class Module {
    int i;
    int x;
    int y;
    int data;
    // Contructor
    Module(int x, int d){
        this.x = x;
        this.data = d;
    }   
    void inc() {
        this.data ++;
    }
    void dec() {
        this.data --;
    }
    void display(){
        textSize(30);
        text(data, x, 100);
    }
}

答案 1 :(得分:1)

看看这个

Arithmetic progression,应阐明原因2来增加和减少数字的过程。 一行中的数字位数为rownumber + rownumber - 12*rownumber -1,然后(rownumber*2-)/2的数字增加2,然后开始减少2。