R中的功能是在楼梯中排列硬币。任务是确定完成的楼梯中硬币的完整行数

时间:2018-12-20 23:14:38

标签: r

硬币排列示例- 如果有6个硬币,则楼梯的第一行有1个硬币,第二行有2个硬币,第三行有3个硬币,因此总共可以完成3行。要完成第4行,还需要4个硬币即总共10个硬币。

每行应该比上面的行多一个硬币。

我必须生成一个排列硬币的函数,以便对于每个硬币[k]函数必须打印一个表示最大值的整数。没有可以创建的完整行。 安排硬币有以下条件- 1.coins [coins [0],------- coins [m-1]长整数的数组,每个整数代表硬币的数量 2. m在1到10 ^ 5的范围内。 3.coins [k]的范围是1到10 ^ 15。

1 个答案:

答案 0 :(得分:0)

下面的函数以index = 1开头,并以sumval保持索引值的连续总和。当sumval大于k时,它将停止并返回索引1。这对应于步骤数。

steps <- function(k) {
    index <- 1
    sumval <- 1
    while (sumval <= k) {
        index <- index + 1
        sumval <- sumval + index
    }
    return(index-1)
}

该函数花了大约3.0秒来计算我2013年中期的MacBook Air(MacBookAir6,2)的k = 1e15(44721359)的值。