您的位置:首页 > 其它

枚举:完美立方

2017-08-26 17:32 197 查看
枚举:逐个尝试答案的一个解决问题求解的策略。

例如:求小于N的最大素数。

1、判断N-1是否为素数。

2、判断N-2是否为素数。

、、、、、、一直到N-i。

转化为求小于N的全部素数。

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

例如12^3= 6^3 + 8^3 + 10^3 。编写一个程序,对任给的正整数N (N≤100),寻找所有的四元组(a, b, c, d),使得a^3 = b^3 + c^3 + d^3,其中a,b,c,d 大于 1, 小于等于N,且b<=c<=d。

四重循环,a,b,c,d,a在最外层,d在最里层。每一层都是从小到大。

a的枚举范围是[2,N]

b的范围是[2,a-1]。因为b的范围肯定比a小。

c的范围是[b,a-1].由于b<=c<=d.

d的范围是[c,a-1].同上。

#include<math.h>
#include<stdio.h>
int main()
{
int n;
int a,b,c,d;
scanf("%d",&n);
for(a=2;a<=n;a++)
{
for(b=2;b<a;b++)
{
for(c=b;c<a;c++)
{
for(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);
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: