寻找启动数字与其中最长的在Collat​​z序列; 100 [英] Finding the longest collatz sequence for starting numbers < 100

查看:150
本文介绍了寻找启动数字与其中最长的在Collat​​z序列; 100的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

def longest_collatz_sequence(n)
    longest_sequence = []
    (1..n).each do |a|
        sequence = [a]
        until sequence.last == 1
            if a % 2 == 0
                sequence.push(a/2)
            else
                sequence.push(3a + 1)
            end
        end
        if sequence.length > longest_sequence.length
            longest_sequence = sequence
        end
    end
    longest_sequence
end

longest_collat​​z_sequence(100)

longest_collatz_sequence(100)

当我运行算法,有人告诉我可能是在3A + 1意想不到的标识符和程序不运行。哪里是我的问题?

When I run the algorithm, I'm told that there is an unexpected identifier within 3a + 1 and the program doesn't run. Where is my problem?

谢谢!

推荐答案

请即 3 * A ,你离开了实际的乘法。

Make that 3*a, you left out the actual multiplication.

这篇关于寻找启动数字与其中最长的在Collat​​z序列; 100的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆