public class NestedForLoop {
private void generateNumberPyramid(int num) {
int length = num + 1;
for(int i = 1; i < length; i++) {
for(int j = 0; j < i; j++) {
System.out.print(j+1);
}
System.out.println();
}
}
public static void main(String[] args) {
NestedForLoop nfl = new NestedForLoop();
nfl.generateNumberPyramid(4);
}
}
输出如下:
1
12
123
1234
预期输出应为:
1
22
333
4444
可能出现什么问题?
答案 0 :(得分:3)
更改System.out.print(j+1);
System.out.print(i);
答案 1 :(得分:2)
library(AER)
library(caret)
data(Mortgage)
fitControl <- trainControl(method = "repeatedcv"
,number = 5
,repeats = 10
,allowParallel = TRUE)
library(doMC)
registerDoMC(cores=10)
Final.rfModel <- train(form=networth ~ ., data=Mortgage, method = "rf", metric='RMSE', trControl = fitControl, tuneLength=10, importance = TRUE)
#### partial plots fail
partialPlot(Final.rfModel$finalModel, Mortgage, "liquid")
library(plotmo)
plotmo(Final.rfModel$finalModel)
代替System.out.print(i)
答案 2 :(得分:2)
您的问题出现在嵌套for循环中:
变化:
for(int j = 0; j < i; j++) {
System.out.print(j+1);
}
要:
for(int j = 0; j < i; j++) {
System.out.print(i);
}
答案 3 :(得分:2)
i
的值对应于每一行。 i=1
表示第一行,i=2
表示第二行,依此类推。因此,在for loop
中,进行以下更改:
for(int i = 1; i < length; i++) {
for(int j = 0; j < i; j++) {
System.out.print(i);
}
System.out.println();
}
Ideone链接:http://ideone.com/5g0xWT
答案 4 :(得分:1)
由于你正在迭代ROWS,你应该使用i而不是(j + 1)。这样做只会迭代你想要的东西,否则它将继续为每个数字添加一个。所以就像这样:
for(int i = 1; i < length; i++) {
for(int j = 0; j < i; j++) {
System.out.print(i);
}
System.out.println();
}