Project Euler-Integer right triangles
2015-12-19 21:04
288 查看
# Integer right triangles from math import sqrt MAX_PERIMETER = 1000 class RightTriangle(object): def __init__(self, *args): self.__side1 = args[0] self.__side2 = args[1] self.__complete() # calculate side3 and perimeter def __complete(self): self.__side3 = sqrt(self.__side1 ** 2 + self.__side2 ** 2) self.__perimeter = self.__side1 + self.__side2 + self.__side3 def perimeter(self): return self.__perimeter def jude(self): global MAX_PERIMETER if self.__perimeter % 1 == 0 and self.__perimeter <= MAX_PERIMETER: return True else: return False if __name__ == '__main__': # store solution in MyList MyList = [0 for _ in xrange(0, MAX_PERIMETER + 1)] for i in xrange(1, MAX_PERIMETER / 2): for j in xrange(1, MAX_PERIMETER / 2): tmp = RightTriangle(i, j) if tmp.jude(): # if jude is true, let solution number add one MyList[int(tmp.perimeter())] += 1 # print perimeter of triangle that has max solutions Max_Solution = max(MyList) for i in xrange(1, MAX_PERIMETER + 1): if MyList[i] == Max_Solution: print(i)
相关文章推荐
- 主要代码
- Linux下Hadoop集群的搭建(1)—重新编译Hadoop
- 文件
- React事件处理函数的bind复用和name复用
- sprint最后冲刺-out to out
- hdoj 诡异的楼梯 1180 (bfs&&奇偶判断) 好题
- Java基础:死锁示例
- 通过浏览器链接启动本地 Activity
- 20151219 ocp examA(60-70) examB(1-20)
- 织梦 dedecms导航无法调用外部链接的原因
- 拨打电话,发短信
- 数据结构-图
- CSRF 防御策略
- html iframe用法
- C++中的头文件和源文件
- 如果让用户不可以放入某一个实体记录
- createjs接触
- 第十六周项目四----英文单词的基数排序
- Struts 2 基本语法
- C++连接数据库