Algorithm 这个问题怎么会停止工作?
所以嘿 我有一个学校的任务,它基于以下代码:Algorithm 这个问题怎么会停止工作?,algorithm,Algorithm,所以嘿 我有一个学校的任务,它基于以下代码: while(n != 1) { System.out.print(n + ", "); if(n%2 == 0) { n = n/2; } else { n = here; } } 问题是,如果你改变这条线会发生什么 n = here; 到3n+2、2n+1和n+1 到目前
while(n != 1)
{
System.out.print(n + ", ");
if(n%2 == 0)
{
n = n/2;
}
else
{
n = here;
}
}
问题是,如果你改变这条线会发生什么
n = here;
到3n+2、2n+1和n+1
到目前为止我学到的是:
对于3n+2,如果您运行程序,n将是50,另一个时间是200,在某个点之后,它将看起来完全相同,尽管对负数不起作用;
因为2n+1根本不起作用
因为n+1将起作用
任何好的质量信息,它到底是如何工作的,我不能完全理解它?n%2表示剩余部分。所以偶数等于0,而不是不均匀 当n以不均匀的方式进入时,它将转到else。 所以当你写作时:
n = n + 1. with following example:
n=7, n != 1 so in the while, n%2 == 0 equals false, we go to else
n = n + 1, // now n =8
go back to top of while, n != 1 so in the while, n%2 == 0 equals true
n = n/2 //now n = 4
go back to top of while...
n = n/2 // now n = 2
go back to top of while...
n =n/2 // now n = 1
exit while
你也可以调试你的代码,看看会发生什么,其他的例子你可以自己思考:-)n%2意味着剩余部分。所以偶数等于0,而不是不均匀 当n以不均匀的方式进入时,它将转到else。 所以当你写作时:
n = n + 1. with following example:
n=7, n != 1 so in the while, n%2 == 0 equals false, we go to else
n = n + 1, // now n =8
go back to top of while, n != 1 so in the while, n%2 == 0 equals true
n = n/2 //now n = 4
go back to top of while...
n = n/2 // now n = 2
go back to top of while...
n =n/2 // now n = 1
exit while
你也可以调试你的代码,看看会发生什么,其他的例子你可以自己思考:——)你感兴趣的是代码和变体。 假设它永远不会无穷大,但我们仍然没有证据
另外,我强烈建议您观看这些关于它的小视频:,。您感兴趣的是它的内容和变化。 假设它永远不会无穷大,但我们仍然没有证据 另外,我强烈建议观看这些关于它的小视频: