轨道
/
Clojure
Clojure
/
练习
/
最大连续乘积
最大连续乘积

最大连续乘积

中等

简介

你为一个政府机构工作,这个机构截获了一伙银行劫匪之间的一系列加密通信信号。 这些信号中包含一长串数字。 你的团队需要运用各种数字信号处理技术来分析这些信号,找出其中可能表明他们正在策划抢劫的规律。

说明

你的任务是在加密信号中那串很长的数字里寻找规律。

这里要用到的技巧叫作最大数列乘积。

首先,我们来定义几个术语。

  • 输入:你需要分析的数字序列
  • 数列:输入中一段相邻的数字(也就是彼此紧挨着的数字)
  • 跨度:每个数列有多少位数字
  • 乘积:把几个数相乘得到的结果

我们用一个例子走一遍,输入是"63915"。

  • 要组成一个数列,就从原始输入中取相邻的数字。
  • 如果跨度是3,就会有 3 种可能的数列:
    • "639"
    • "391"
    • "915"
  • 接下来,我们要计算每个数列的乘积:
    • 数列"639"的乘积是 162(6 × 3 × 9 = 162)
    • 数列"391"的乘积是 27(3 × 9 × 1 = 27)
    • 数列"915"的乘积是 45(9 × 1 × 5 = 45)
  • 162 比 27 和 45 都大,所以"63915"的最大数列乘积来自数列"639"。 因此答案是 162。
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Clojure Exercism

准备好开始 最大连续乘积 了吗?

注册 Exercism,借助 12 个概念105 个练习 和真人导师指导,学习并掌握 Clojure,全部免费。