Project Euler:Problem 86 Cuboid route
来源:互联网 发布:微软数据库认证有用吗 编辑:程序博客网 时间:2024/06/05 14:29
A spider, S, sits in one corner of a cuboid room, measuring 6 by 5 by 3, and a fly, F, sits in the opposite corner. By travelling on the surfaces of the room the shortest "straight line" distance from S to F is 10 and the path is shown on the diagram.
However, there are up to three "shortest" path candidates for any given cuboid and the shortest route doesn't always have integer length.
It can be shown that there are exactly 2060 distinct cuboids, ignoring rotations, with integer dimensions, up to a maximum size of M by M by M, for which the shortest route has integer length when M = 100. This is the least value of M for which the number of solutions first exceeds two thousand; the number of solutions when M = 99 is 1975.
Find the least value of M such that the number of solutions first exceeds one million.
高中做过的题目。把立方体各面展开,这个路径实际上是一个直角三角形的斜边。
要使得的这个路径最小,假设矩阵个边长分别为a<=b <=c
最短路径为sqrt((a+b)^2+c^2)
把a,b视为整体,记做ab
则ab范围是[2,2M]
在寻找到开方后结果为整数的ab和c后
如果ab<c:a,b是可以平均分ab的
如果ab>=c:b的取值到大于ab/2并且满足b<=c,ab-b<=c 得到b的取值个数为(c-(ab+1)/2)+1
#include <iostream> #include <string>#include <cmath>using namespace std;int main(){int c = 1;int count = 0;while (count < 1000000){c++;for (int ab = 2; ab <= 2 * c; ab++){int path=ab*ab + c*c;int tmp = int(sqrt(path));if (tmp*tmp == path){count += (ab >= c) ? 1+(c-(ab+1)/2) : ab / 2;}}}cout << c << endl;system("pause");return 0;}
- Project Euler:Problem 86 Cuboid route
- Euler Project Problem 6
- project euler problem 11
- Project Euler Problem 81
- Project Euler Problem 60
- Project Euler Problem 59
- Project Euler Problem 58
- Project Euler Problem 57
- Project Euler Problem 16
- Project Euler Problem 30
- Project Euler Problem 31
- Project Euler Problem 32
- Project Euler Problem 14
- Project Euler Problem 15
- Project Euler Problem 17
- Project Euler - Problem 18
- Project Euler - Problem 67
- Project Euler - Problem 20
- ActionBar的覆盖叠加
- 技术分享会之——智能指针
- Android官方技术文档翻译——Gradle 插件用户指南(5)
- 修改蓝牙广播间隔
- 在账户确定类型KOFI没有找到总账科目
- Project Euler:Problem 86 Cuboid route
- BigDecimal的用法
- js快速查找字符串某个字符出现次数
- CentOS iptables 默认配置
- 设计模式三大基础模式之工厂模式,单例模式,注册树模式
- jquery ajax配合SpringMVC实现局部刷新DIV
- Objective-C学习笔记(二)——OC基本语法概述
- android 卡片式视图组件 cardview的使用
- Activity的启动模式