在不运行程序的情况下进行计算

我被要求命名下面的算法将在运行后输出的变量 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);


慕妹3242003
浏览 162回答 2
2回答

慕慕森

在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有时称为“高斯求和公式”的事实,下次看到两个嵌套循环时,您应该记住它,其中内部索引的范围取决于外部索引。

眼眸繁星

几乎没有足够的迭代,您可以从字面上将其写出来并保持运行记录:i = 1j = 1 to 11) x = x + x&nbsp; &nbsp; &nbsp; 2i = 2j = 1 to 21) x = x + x&nbsp; &nbsp; &nbsp; 42) x = x + x&nbsp; &nbsp; &nbsp; 8i = 3j = 1 to 31) x = x + x&nbsp; &nbsp; &nbsp;162) x = x + x&nbsp; &nbsp; &nbsp;323) x = x + x&nbsp; &nbsp; &nbsp;64i = 4j = 1 to 41) x = x + x&nbsp; &nbsp; 1282) x = x + x&nbsp; &nbsp; 2563) x = x + x&nbsp; &nbsp; 5124) x = x + x&nbsp; &nbsp;1024&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java