请按照a的值,从小到大依次输出。当两个完美立方等式中a值相同时,b值小的优先输出,若b仍相同,c值小的优先输出,c再相同时d值小的先输出。
样例输入
24
样例输出
6^3=3^3+4^3+5^3
12^3=6^3+8^3+10^3
18^3=2^3+12^3+16^3
18^3=9^3+12^3+15^3
19^3=3^3+10^3+18^3
20^3=7^3+14^3+17^3
24^3=12^3+16^3+20^3
代码粘贴区:
#include<iostream>
#include<time.h>
using namespace std;
int main(){
int start=clock();
int a,b,c,d;
int N;
cout<<"输入N";
cin>>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)
cout<<a<<"^3="<<b<<"^3+"<<c<<"^3+"<<d<<"^3"<<endl;
}
}
int end=clock();
int t=end-start;
return 0;
}
运行结果截图:
实验总结
- 为什么不使用时间单位来表示时间复杂度。
时间单位过于依赖于特定计算机的选择和技术的演变,并且不同机器上执行一条语句的时间各不相同,以时间作为度量没有意义。
2.谈谈你对不同量级时间复杂度的直观认识。
从左至右依次的时间复杂度越来越大,执行的效率越来越低,量级函数图像逐渐取向一个数的函数图像。
常数阶O(1)是一条直线;对数阶O(logN);线性阶O(n);线性对数阶O(nlogN);平方阶O(n²);立方阶O(n³);K次方阶O(n^k);指数阶(2^n)