`
hotcharm
  • 浏览: 17120 次
  • 性别: Icon_minigender_1
  • 来自: 义乌
最近访客 更多访客>>
社区版块
存档分类
最新评论

用clojure解决euler problem 9

 
阅读更多

问题描述:

A Pythagorean triplet is a set of three natural numbers,a<b<c, for which,

a2+b2=c2

For example, 32+ 42= 9 + 16 = 25 = 52.

There exists exactly one Pythagorean triplet for whicha+b+c= 1000.
Find the productabc.

解决方案:

(ns euler-problem-9.core)
(defn square
  [n]
  (* n n))

(defn pythagorean-triplet-sum-1000
  []
  (loop [a 1 b 1]
    (if (= (+ (square a) (square b)) (square (- 1000 a b)))
      (* a b (- 1000 a b))
      (if (and (= a 333) (= b 499))
        "no answer"
        (if (= b 499)
          (recur (inc a) 1)
          (recur a (inc b)))))))
(pythagorean-triplet-sum-1000)

(defn pythagorean-triplet-sum-1000-a-b-c
  []
  (loop [a 1 b 1]
    (if (= (+ (square a) (square b)) (square (- 1000 a b)))
      (list a b (- 1000 a b))
      (if (and (= a 333) (= b 499))
        "no answer"
        (if (= b 499)
          (recur (inc a) 1)
          (recur a (inc b)))))))
(pythagorean-triplet-sum-1000-a-b-c)
abc的乘积为:31875000

a,b,c分别为200,375 ,425

分享到:
评论

相关推荐

    欧拉公式求圆周率的matlab代码-euler:我对欧拉计画的解决方案(clojure)

    该存储库是使用Clojure解决Euler问题的支架。 它以有组织的结构生成规格和解决方案存根,从而使生活稍微好一些。 安装 如果尚未安装,则将其添加到您的路径中。 签出这个项目: $ git clone git@github....

    欧拉公式求圆周率的matlab代码-project-euler:Clojure解决Euler项目问题​​的方法

    Clojure骇客解决了Euler项目的问题。 目的是用惯用的Clojure编写功能解决方案。 用法 大多数解决方案都是完整的,并且完全独立地包含在具有“解决”功能的唯一名称空间中。 有些正在“进行中”。 执照 版权所有:...

    project-euler-clojure:我对Euler项目的Clojure解决方案

    欧拉计划 问题1-2、4、6、8-10、12、14、21、24-26、32、34、36、39、41、46、49、52、55-58、62、65的Clojure解决方案70-74、87、92、97、124、173-174、179、187、214运行解决方案使用以下命令行运行解决方案: ...

    clojure电子书

    这本书不仅讲解了Clojure的基本语法和API,而且通过实例展示了如何使用Clojure解决实际问题。Halloway详细阐述了Clojure的REPL(Read-Eval-Print Loop)工作原理,以及如何利用它进行开发和测试。他还讨论了Clojure...

    euler:Clojure中的Project Euler解决方案

    欧拉解决Clojure中的Euler项目问题​​的方法。 持续的爱好。执照版权所有:copyright:2012-2015 Dave Yarwood 在Eclipse Public License 1.0版下分发。

    Clojure编程乐趣]+clojure_programming.pdf

    Clojure的设计目标是提供一个高效、并发、可移植的环境,适合解决现代软件开发中的复杂问题。在这个“Clojure编程乐趣”中,我们将深入探讨Clojure的核心概念和特性。 首先,Clojure强调函数式编程,这意味着程序被...

    Programming Clojure 英文电子版

    这种紧密集成意味着开发者可以在Clojure项目中使用Java类库提供的强大功能,而无需进行额外的转换或封装。 - **Performance**:虽然Clojure是一种动态语言,但它仍然能够在性能敏感的应用场景中表现出色。通过JIT...

    Practical Clojure.pdf

    使用Clojure编程,随着程序的增长,并不会变得更复杂难以理解,反而会变得更简单、表达性更强。Clojure鼓励开发者尝试在其他语言中过于复杂而通常不会尝试的事情,例如并发编程、不可变性和惰性数据结构。因为...

    programming-clojure-3rd

    读者将通过实例学习如何运用Clojure解决实际问题,提升自己的编程技巧。 总的来说,《Programming Clojure 第三版》是一本全方位的Clojure指南,适合初学者和经验丰富的开发者。它涵盖了Clojure的所有重要方面,...

    Clojure入门教程- Clojure – Functional Programming for the JVM中文版

    ### Clojure入门教程知识...- 对于希望深入了解函数式编程或在JVM上寻找高效编程解决方案的开发者而言,Clojure是一个值得探索的选择。通过实践和社区的支持,学习者可以快速掌握Clojure的核心概念并应用于实际项目中。

    Clojure Data Analysis Cookbook

    - **数据结构和序列操作**:解释 Clojure 中常用的数据结构,如列表、向量、集合和映射,并展示如何使用这些结构进行数据处理。 - **函数式编程**:探讨 Clojure 如何支持纯函数式编程风格,包括高阶函数、闭包和...

    Lacinia纯Clojure实现的GraphQL

    Lacinia将Clojure的这些优点带入了GraphQL领域,允许开发者用熟悉的Clojure语法定义GraphQL类型、字段和解析器。这种结合使得开发者可以利用Clojure的宏系统来创建复杂的GraphQL schema,同时保持代码的可读性和可...

    Professional.Clojure.1119267277

    Clear, practical Clojure for the professional programmer Professional Clojure is the experienced developer's guide to functional programming using the Clojure language. Designed specifically to meet ...

    Clojure电子书合集1(12本)

    [2009] Programming Clojure.(Stuart Halloway).[1934356336].pdf [2010] Functional Programming with Clojure - Simple Concurrency on the JVM.(Tim Berglund, Matthew McCullough).[193650202X].pdf [2010] ...

    Clojure学习——使用clojure jdbc操作mysql

    标题 "Clojure学习——使用clojure jdbc操作mysql" 指出的是一个关于使用Clojure编程语言通过Java Database Connectivity (JDBC) API来操作MySQL数据库的主题。Clojure是一种基于Lisp的函数式编程语言,它运行在Java...

    clojure1.3.0及资料

    Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,充分利用了Java的生态系统。Clojure的设计目标是提供一种静态类型的、并发的、内存安全的语言,同时保持Lisp的简洁性和灵活性。在这个压缩包...

Global site tag (gtag.js) - Google Analytics