枚 举1-1完美立方

简介: 例题1:完美立方解题思路

例题1:完美立方


 形如a3= b3 + c3 + d3的等式被称为完美立方等式。例如


123= 63 + 83 + 103 。编写一个程序,对任给的正整数N


(N≤100),寻找所有的四元组(a, b, c, d),使得a3 = b3 +c3 + d3,其中a,b,c,d 大于 1, 小于等于N,且b<=c<=d。

0d8d6899e13e4f779d71167cc8565ace.png

 输入


一个正整数N (N≤100)。  输出


每行输出一个完美立方。输出格式为:


Cube = a, Triple = (b,c,d)


其中a,b,c,d所在位置分别用实际求出四元组值代入。


请按照a的值,从小到大依次输出。当两个完美立方
等式中a的值相同,则b值小的优先输出、仍相同
则c值小的优先输出、再相同则d值小的先输出。
 样例输入
24
7
完美立方
 样例输出
Cube = 6, Triple = (3,4,5)
Cube = 12, Triple = (6,8,10) 
Cube = 18, Triple = (2,12,16) 
Cube = 18, Triple = (9,12,15) 
Cube = 19, Triple = (3,10,18)
Cube = 20, Triple = (7,14,17) 
Cube = 24, Triple = (12,16,20)


解题思路

四重循环枚举a,b,c,d ,a在最外层,d在最里层,每一层


都是从小到大枚举,


a枚举范围[2,N]


b范围 [2,a-1]


c范围 [b,a-1]


d范围 [c,a-1]


代码


#include<iostream>
#include<cmath>
using namespace std;
int main() {
  int N = 0;
  cin >> 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(pow((double)a,3)== pow((double)b, 3)+ pow((double)c, 3)+ pow((double)d, 3))
            printf("Cube = %d, Triple = (%d,%d,%d)\n", a, b, c,d);
        }
  return 0;
}
目录
相关文章
|
5月前
每日练习之数学——砝码和天平
每日练习之数学——砝码和天平
28 3
|
6月前
|
算法 测试技术 C++
【状态压缩 容斥原理 组合数学】3116. 单面值组合的第 K 小金额
【状态压缩 容斥原理 组合数学】3116. 单面值组合的第 K 小金额
【状态压缩 容斥原理 组合数学】3116. 单面值组合的第 K 小金额
|
6月前
|
Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交
|
6月前
|
存储 算法 Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(2)
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(2)
|
6月前
|
存储 算法 Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(1)
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(1)
|
算法 Python
【每周一坑】​计算100以内质数之和 +【解答】输出三角形
不过如果你有兴趣的话,可以进一步考虑一下你所用方法的算法复杂度是多少,看看谁的方法更简单。
【速算】分享一个速算小技巧:72法则和69法则
【速算】分享一个速算小技巧:72法则和69法则
251 0
|
算法
「算法」蛇形填数 & S型填数
这一篇将接着利用上一次的打印模板,来破解其他类型的模拟题目。
238 0
「算法」蛇形填数 & S型填数
|
算法 C语言
假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。
(2)当n为奇数时,将前后两部分,即1…n,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;若两端重量相等,则中间的硬币,即第 (n+1)/2枚硬币是假币。n,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。:因为30位偶数,所以至少要被分一次,然后成为奇数之后,那个假币就是奇数的中位数,所以只需要2次。若输入的硬币数为30,则最少的比较次数为(2),最多的比价次数为(4)。
564 0
|
机器学习/深度学习
枚 举1-1完美立方
例题1:完美立方
128 0
枚 举1-1完美立方