我想知道为什么这段代码没有产生预期的结果2小时。 如果我输入3个整数,比如3,4和5,它应该给我所有27个可能的总和(假设数字可以是正数,负数或零。)
所以它应该产生以下内容:
-3-4-5 = -12
-3-4 + 0 = -7
-4-4 + 5 = 3
依旧......
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
for (int k = -4; k <= -2; k++)
for (int i = -4; i <= -2; i++)
for (int j = -4; j <= -2; j++)
{
if (k == -4)
a = -a;
else if(k == -3)
a = 0;
else
a = a;
if (i == -4)
b = -b;
else if(i == -3)
b = 0;
else
b = b;
if (j == -4)
c = -c;
else if(j == -3)
c = 0;
else
c = c;
System.out.println(a + b + c);
}
答案 0 :(得分:0)
您不应该修改a
,b
或c
,因为这只会意味着您无法在第一次循环后使用此值。您想要了解添加,减去或忽略每个值时会发生什么。这与将其乘以+1,-1或0相同。
简而言之。
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
for (int ma = -1; ma <= +1; ma ++)
for (int mb = -1; mb <= +1; mb ++)
for (int mc = -1; mc <= +1; mc ++)
System.out.println(ma * a + mb * b + mc * c);
这将打印出27个值,但它们可能并非都是唯一的。
如果您必须盯着代码超过2分钟,那么您应该使用调试器来帮助调试代码。