在for循环Java中创建一个不断变化的数字序列?

时间:2015-11-22 10:49:16

标签: java loops

我试图在for循环(Java)中增加以下序列:

1,4,9,16,25等每次增加两倍的差异。我尝试使用' i + = 3 + i'但我知道这是错的,因为它没有考虑到变量i沿着序列发生变化。

有任何帮助吗?感谢

4 个答案:

答案 0 :(得分:2)

您可以在循环中增加i+=k并更改k以更改增量。

int k=1;
for (int i=1;i<1000;i+=k) {
   k+=2;
}

答案 1 :(得分:0)

如果你的i正在改变,那么简单的逻辑是,使用在循环范围之外声明的另一个变量。这将确保每次循环运行时都不会重新创建它。

int num = 1;
for(int i=1; i<maxValue; num+=2,i+=num){
    //Use the value of `i` here, it will be as you wanted. 
}

答案 2 :(得分:0)

序列以j = 1和k = 4开始,然后导出该系列的下一个值n次。公式如下:

Initial loop (i=0): 
j = 1, k = 4; 

Loop (i > 0 less than n):
Repeat below n times: 
temp = k; 
k = k + (k - j + 2); 
j = temp;
print value of j being the series;    

我假设您从用户那里获取n作为输入,然后第n次生成该系列。让我们看看下面的代码示例

int n = 10;  
for(int i = 0, temp = 0, j = 1, k = 4; i < n; i++, temp = k, k += (k-j+2), j = temp) {
   System.out.println(j);
}

假设用户输入n = 10,则循环初始化i = 0并继续直到i <0。 n很满意。它初始化j = 1和k = 4,然后执行循环体(打印j),然后备份k的值,计算k的新值并替换j的旧值。 n = 10的输出如下:

1
4
9
16
25
36
49
64
81
100

答案 3 :(得分:0)

从用户读取序列号并根据给定的数字生成系列。

Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int ans;
for(int i = 1; i <= n; i++){
  ans = i * i;
  System.out.println(ans);
}