【发布时间】:2011-06-27 09:08:47
【问题描述】:
我想计算能被 1-20 的所有自然数整除的最小可能数;我在 R 中编写了以下程序,但没有得到所需的输出(似乎我的循环几乎永远不会结束)。
我的程序如下:
a = 21
c = 0
while ( c < 20){
c = 0
n = 1
while ( n < 21 ){
if (a%%n == 0) c = c + 1
n = n+1
}
a = a + 1
}
print (a)
我哪里做错了?
【问题讨论】:
-
好吧,你的外部循环
while的第一行将 c 重置为 0,所以它永远不会从外部循环中逃脱。 -
使用有意义的变量名更容易阅读代码 -- 'a' 代表 'answer','c' 代表... ¿'count'?。 Andrie 是对的——如果你一直重置它,它永远不会破坏外循环。
-
@Andrie 如果所有
a%%1:20==0然后c变为20 并且在c重置为0 之前外循环中断。这样做有点奇怪,但它不是无限循环。 -
@SachaEpskamp 很好,谢谢。
标签: r infinite-loop