枚举法典型例题。
关键在于按照题目输出要求,调控多层循环。
例如题目要求所有值由小到大输出,所以a,b,c,d均由小到大循环;
又例如要求d>=c>=b,则直接在循环初始中令c=b,d=c,以避免不必要的循环。
#include<stdio.h>
#include<stdlib.h>
int main(){
int a,b,c,d,n;
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);
return 0;
}