忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 753 | 回复: 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
发表于 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. }
复制代码

论坛徽章:
3
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:00
发表于 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. }
复制代码

论坛徽章:
3
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:00
发表于 2017-03-01 10:22 |显示全部楼层
200 375 425 = 31875000
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP