我试图在for循环(Java)中增加以下序列:
1,4,9,16,25等每次增加两倍的差异。我尝试使用' i + = 3 + i'但我知道这是错的,因为它没有考虑到变量i沿着序列发生变化。
有任何帮助吗?感谢
答案 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);
}