用clojure解决 euler problem 6
来源:互联网 发布:淘宝卖家收到法院传票 编辑:程序博客网 时间:2024/05/21 14:58
问题描述:
The sum of the squares of the first ten natural numbers is,
12 + 22 + ... + 102 = 385
The square of the sum of the first ten natural numbers is,
(1 + 2 + ... + 10)2 = 552 = 3025
Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 385 = 2640.
Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.
(ns euler-problem-6.core (:use [clojure.contrib.math]))(defn square [num] (* num num))(square 3)(defn square-sum-version-1 [num] (loop [current-num 1M sum 0M] (if (= current-num num) (+ sum (square current-num)) (recur (inc current-num) (+ sum (square current-num))))))(defn square-sum-version-2 [num] (reduce + (map square (range 1M (inc num)))));(time (square-sum-version-1 1000000M));(time (square-sum-version-2 1000000M))(defn sum-square-version-1 [num] (loop [current-num 1M add-sum 0M] (if (= current-num num) (square (+ add-sum current-num)) (recur (inc current-num) (+ current-num add-sum)))))(defn sum-square-version-2 [num] (square (reduce + (range 1M (inc num)))));(sum-square-version-1 10);(sum-square-version-2 10)(defn dif-sum-square-with-square-sum [num] (abs (- (sum-square-version-1 num) (square-sum-version-1 num))))(dif-sum-square-with-square-sum 100M)
经测试,尾递归版本的性能要好于延迟加载的版本,但是延迟加载程序简单明了!
- 用clojure解决 euler problem 6
- 用clojure解决 euler problem 1
- 用clojure解决 euler problem 2
- 用clojure解决euler problem 3
- 用clojure解决 euler problem 4
- 用clojure解决euler problem 5
- 用clojure解决euler problem 7
- 用clojure解决euler problem 8
- 用clojure解决euler problem 9
- 用clojure解决euler problem 10
- 用clojure解决 euler problem 11
- 用clojure解决euler problem 12
- Euler Project Problem 6
- Project Euler - Problem 6
- Project Euler problem 6
- Project Euler Problem 6
- Problem Euler
- 【Project Euler】【Problem 6】Sum square difference
- Android Mms专题——接收信息流程
- 一个IT菜鸟的成长之路
- Android Mms专题——信息发送流程
- 【转】 vs2008中ActiveX控件的测试(Active X Test Container)
- NSRunloop 的用法
- 用clojure解决 euler problem 6
- Android Mms专题——MMS源码结构
- 从字符串中检索出浮点型数的函数
- 算法学习之路
- 大数相加,结果可精确到1000位(利用数组)
- Sql profiles用法介绍
- Android Mms专题——MMS概览介绍
- Bin Packing-算是一个复杂度优化的好思想
- 职场高人