免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10763 | 回复: 2
打印 上一主题 下一主题

[其他] Project Euler - 009 [复制链接]

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-09-28 10:18 |只看该作者 |倒序浏览
本帖最后由 icymirror 于 2015-09-28 10:23 编辑

Problem 009:
A Pythagorean triplet is a set of three natural numbers, a < b < c, for which, a^2 + b^2 = c^2
For example, 3^2 + 4^2 = 9 + 16 = 25 = 5^2.
There exists exactly one Pythagorean triplet for which a + b + c = 1000.
Find the product a,b,c.

问题9:
毕达哥拉斯数(勾股数)是三个自然数,他们有关系:a*a + b*b = c*c
例如:3*3 + 4*4 = 25 = 5*5
在1000内有一组毕达哥拉斯数,并且满足:a + b + c = 1000。
试找出这三个数的乘积。

代码:

  1. package main

  2. import (
  3.         "fmt"
  4. )

  5. func Problem009(scope int) int {
  6.         var result int
  7.         for edgec := scope / 3 + 1; edgec < scope / 2; edgec++ {
  8.                 for edgeb := 1; edgeb < edgec; edgeb++ {
  9.                         edgea := scope - edgec - edgeb
  10.                         if (edgea < edgeb && edgeb < edgec) {
  11.                                 if (edgea * edgea + edgeb * edgeb == edgec * edgec) {
  12.                                         result =edgea * edgeb * edgec
  13.                                 }
  14.                         }
  15.                 }
  16.         }
  17.        
  18.         return result
  19. }

  20. func main() {
  21.         fmt.Println("Problem 009 result: ", Problem009(1000))
  22. }
复制代码

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:4415-16赛季CBA联赛之北京
日期:2018-03-04 17:01:50
2 [报告]
发表于 2017-03-01 10:20 |只看该作者
Collison预言Go语言将在两年内称霸云领域

  1. package main

  2. import "fmt"
  3. var puts = fmt.Println

  4. func P009(end int) {
  5.         for c := end / 2; c > 1; c-- {
  6.                 c2 := c * c
  7.                 ab := end - c
  8.                 for b := c - 1; b > ab/2; b-- {
  9.                         if a := ab - b; a*a+b*b == c2 {
  10.                                 puts(a, b, c, "=", a*b*c)
  11.                                 return
  12.                         }
  13.                 }
  14.         }
  15. }

  16. func main() {
  17.         P009(1000)
  18. }
复制代码

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:4415-16赛季CBA联赛之北京
日期:2018-03-04 17:01:50
3 [报告]
发表于 2017-03-01 10:22 |只看该作者
200 375 425 = 31875000
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP