本试验取材于郭炜老师的《程序设计与算法》。
上过课程的小伙伴都知道,课上老师当作例题讲的。老师讲的是一方面,自己听的有多少又是一方面。因此今天想再次分析这道题目的解题过程。
题目老师讲解仔细,无非就是这几点。
- 这道题目使用枚举
- 枚举的好坏在于范围
- 利用题目已知条件
这道完美立方的题目运用枚举可以说是就跟韩信点兵、鸡兔同笼一样简单。然而目前要确定范围的话估计就要脑子转动一下。
恰如图片上面的部分,可能感觉这是问题的细致描述,殊不知这就是枚举范围的提示,因此
按照此法枚举,还能遵守代码格式要求,可谓是一箭双雕。也可能是这是对我们做题目的最大提示!
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int N;
scanf("%d",&N);
for(int a=2;a<=N;++a)
for(int b=2;b<a;++b)
for(int c=b;c<a;++c)
for(int d=c;d<a;++d)
if(a*a*a == b*b*b + c*c*c + d*d*d)
printf("Cube = %d, Triple = (%d,%d,%d)\n",a,b,c,d);
return 0;
}