无需运行程序即可计算

-6 java

我被要求命名变量x的值,下面的算法将在运行后输出.我不知道如何计算它,而不实际将其写入实际的Java程序.解决方案应该是1024.如何在纸上计算?

算法:

int n = 4;
int x = 1;
for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= i; j++) {
       x += x;
    }
}
System.out.println(x);
Run Code Online (Sandbox Code Playgroud)

And*_*kin 6

x += x 双打 x每次执行最里面的语句时.内循环执行1 + 2 + 3 + 4 = 4 * (4 + 1) / 2 = 10次数.因此,结果必须如此2^10 = 1024.

一般来说n,应该是这样的2^((n + 1) * n / 2).

1 + 2 + ... + n = (n + 1) * n / 2有时被称为"高斯和公式"的事实,你应该记住它下次你看到两个嵌套循环,其中内部索引的范围取决于外部索引.