对于没有乘法的循环打印方块

时间:2015-08-29 23:04:47

标签: java for-loop

我试图在没有乘法的情况下产生这个输出:

fwrite(u'ñ')

我用这个for循环产生了它:

81 100 121 144 169 196 225 256 289

但是,我再次尝试创建一个for循环或嵌套for循环,生成相同的输出而不进行乘法。

    for (int k = 9; k <=17; k++){

        System.out.print( k * k +" ");
    }

我无法进入第二阶段的循环阶段我很困惑。任何反馈或推动正确的方向是值得赞赏的。

Pseudocode:
Start with value 81
Increment by 19
On the second loop add ++3 to the 19 value

1 个答案:

答案 0 :(得分:3)

如果我理解你的问题,你可以使用加法而不是乘法。像

这样的东西
public static void main(String[] args) {
    for (int k = 9; k <= 17; k++) {
        int t = 0;
        for (int j = 0; j < k; j++) {
            t += k;
        }
        System.out.print(t + " ");
    }
    System.out.println();
}

输出是(请求的)

81 100 121 144 169 196 225 256 289 

另一个选项是Math.pow(double, double)

public static void main(String[] args) {
    for (int k = 9; k <= 17; k++) {
        System.out.print((int) Math.pow(k, 2) + " ");
    }
    System.out.println();
}

表示相同的输出。最后,根据@mschauer下面的评论,您还可以使用类似

的内容
public static void main(String[] args) {
    for (int r = 64, k = 9; k < 18; k++) {
        r += k + k - 1;
        System.out.printf("%d ", r);
    }
    System.out.println();
}