我应该使用循环来打印以下输出:
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1
7 6 5 4 3 2 1
此模式中的最高数字(在此示例中为7)由用户输入确定。这是该模式的适用代码:
index=patternLength+1; n=1; //These values are all previously intitialized
while (index!=1) {
index--;
printSpaces((index*2)-2); //A static method that prints a certain number of spaces
while(n!=1) {
n--;
System.out.print(n + " ");
}
System.out.print("\n");
n=patternLength+1-index;
}
这是用户输入“ 7”的错误输出:
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
错误输出之前有两个空行;这些行具有完整/正确模式所需的正确空格数,但是由于某些原因,实际数字在循环中开始打印得“太迟”。 换句话说,正确示例中出现在“ 1,2 1”之前的空格在错误的输出中。这是一些数字,使正确的示例不正确。
答案 0 :(得分:1)
好,我明白了。
library(tidyverse)
library(quantmod)
library(timekt)
my_data <- readr::read_csv('my excel file.csv')
class(my_data)
我的问题是我的“ n”必须同时上升和下降,因此额外的变量“ nSetter”似乎已经解决了这一问题,尽管这可能是一种解决方案。随你。感谢@Andreas为我指明了正确的方向,并感谢@JohnKugelman进行了有益的编辑。
答案 1 :(得分:1)
请在第二次while循环不正确时尝试使用此代码。
int index = patternLength + 1;
int n = 2; //These values are all previously intitialized
int i = 1;
while (index != 1) {
index--;
printSpaces((index * 2) - 2); //A static method that prints a certain number of spaces
while (n != 1) {
n--;
System.out.print(n + " ");
}
System.out.print("\n");
i++;
n = i+1;
}