算法篇【枚举1 -- 完美立方】
1、问题:输出形如a*3 = b*3 + c*3 + d*3 的四元组
输入:
一个正整数N(N<=100)。
输出:
每行输出一个完美立方,其格式为,Cube = a,Triple = (b,c,d)
思路:
四重循环枚举a、b、c、d,a在最外层,d在最里层,每一层都是从小到大枚举。
a的范围[2:N];b的范围[2:a-1];c的范围[b:a-1];d的范围[c:a-1];
1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 int main() 6 { 7 int N; 8 printf("Please input the N value \n"); 9 scanf("%d",&N); 10 for(int a=2; a<=N; a++){ 11 for(int b=2; b<a; b++){ 12 for(int c=b; c<a; c++){ 13 for(int d=c; d<a; d++){ 14 if(a*a*a == b*b*b + c*c*c + d*d*d){ 15 printf("Cube = %d, Tripple = (%d,%d,%d) \n",a,b,c,d); 16 } 17 } 18 } 19 } 20 } 21 return 0; 22 system("pause"); 23 }
运行:

总结:
1、枚举输出的时候要考虑尽量去缩短枚举值的取值范围。
本文来自博客园,作者:hematologist,转载请注明原文链接:https://www.cnblogs.com/littleMa/p/8502798.html
posted on 2018-03-03 19:56 hematologist 阅读(346) 评论(0) 收藏 举报
浙公网安备 33010602011771号