您的位置:首页 > 其它

POJ 1543 完美立方——基础枚举

2013-01-21 15:41 274 查看
题目传送门:http://poj.org/problem?id=1543

完美立方:a^3=b^3+c^3+d^3

解题思路:a最小为6,为避免对立方的重复计算,先用一个数组把立方存起来,然后再对四元组进行判断

b,c,d为不同的整数,且都小于a

#include <stdio.h>
#include <math.h>

int main()
{
int n,a,b,c,d;
long int cube[101];
while(scanf("%d",&n)!=EOF)
{
for(int  i=1; i<=n; i++)
{
cube[i]=i*i*i;
}
for(a=6; a<=n; a++)
for(b=2; b<a-1; b++)
{
if(cube[a]<cube[b]+cube[b+1]+cube[b+2])
break;
for(c=b+1; c<a; c++)
{
if(cube[a]<cube[b]+cube[c]+cube[c+1])
break;
for(d=c+1; d<a; d++)
if(cube[a]==cube[b]+cube[c]+cube[d])
printf("Cube = %d, Triple = (%d,%d,%d)\n",a,b,c,d);
}
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: