我试图得到这样的输出:
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
我只是感到困惑,我如何才能像上面的输出一样?我尝试了很多次循环。但是我没有得到正确的输出。
答案 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 - 1
或2*rownumber -1
,然后(rownumber*2-)/2
的数字增加2,然后开始减少2。