找回密码
 立即注册
查看: 6626|回复: 2

程序如何编写

[复制链接]
发表于 2013-11-3 12:52:27 | 显示全部楼层 |阅读模式
可能是一个简单的题,但是本人刚学习R语言,希望高手能够帮帮忙~谢谢啦
题目是:编写一个R程序(函数),输入一个整数n,如果n<=0,则中止运算,并输出一句话:“要求输入一个正整数”;否则,如果n是偶数,则将n除2,并赋给n;否则,将3n+1赋给n,不断循环,只到n=1,才停止计算,并输出一句话:“运算成功”。
这是我的程序:
fzerp<-function(n){
if(n<=0)
list(fail="Required to enter a positive integer")
else{
    repeat{
           if(n=1) break
           else if(n/2=0) n<-n/2
           else n<-3*n+1
          }
     }
}

运行结果:
> fzerp<-function(n){
+ if(n<=0)
+ list(fail="Required to enter a positive integer")
+ else{
+     repeat{
+            if(n=1) break
Error: unexpected '=' in:
"    repeat{
           if(n="
>            else if(n/2=0) n<-n/2
Error: unexpected 'else' in "           else"
>            else n<-3*n+1
Error: unexpected 'else' in "           else"
>           }
Error: unexpected '}' in "          }"
>      }
Error: unexpected '}' in "     }"
> }
Error: unexpected '}' in "}"
>

本人不太懂,R语言中不能用等号么?还是有什么其他的表示方法?
回复

使用道具 举报

发表于 2014-1-23 18:04:16 | 显示全部楼层
fzerp <- function(n){
        if(n <= 0) {
                list(fail="Required to enter a positive integer")
        } else {
                repeat {
                        print(n)
                        if(n == 1){
                                break
                        } else if( n %% 2 == 0){
                                n <- n %/% 2
                        } else {
                                n <- 3*n + 1
                        }
                }
        }
}

回复

使用道具 举报

发表于 2014-3-30 14:08:29 | 显示全部楼层
这个是对的!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 10:02 , Processed in 0.030191 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表