笨办法学R编程(2)

August 18, 2012
By

This post was kindly contributed by 数据科学与R语言 - go there to comment and to read the full post.


本例将介绍R语言中的while循环和if条件。最终用它来解决Project Euler的第二个问题。除了练习之外你还需要了解一些斐波纳契数列的知识。废话不多说了,打开R控制台,跟着输入下面的代码,自行琢磨吧。

# 预备练习,while循环和if判断
x <- 1:10
print(x)
print(x[10])
print(x[-10])
 
i <- 1
while (i <= 10) {
print(x[i])
i <- i + 1
}
i <- 1
while (TRUE) {
print(x[i])
i <- i + 1
if (i > 10) break
}
# 用循环和条件来完成前篇文章中的问题
# 可以体会到R语言向量化计算的特点。
x <- 1
sumx <- 0
while (x < 1000) {
if (x %% 3 == 0 | x %% 5 == 0) {
sumx <- sumx + x
}
x <- x + 1
}
print(sumx)
 
# Project Euler 2
# 找到4000000以下的斐波纳契数列
# 将其中的偶数进行求和
i <- 2
x <- 1:2
while (x[i] < 4e6) {
x[i+1] <- x[i-1] + x[i]
i <- i + 1
}
x <- x[-i]
sum(x[x %% 2 == 0])

得到的结果为4613732。使用while和if语句时要注意,其判断条件都要放在圆括号中,之后的代码段如果超过一行则要用大括号注明。

Tags: ,

Comments are closed.