我的代码如下:
#include<iostream>
#include<set>
using namespace std;
typedef set<int>::iterator set_iter;
const int MIN=100;
const int MAX=999;
int pow3(const int &a){
return a*a*a;
}
int daffodil(){
set<int,less<int> > daff;
int a,b;
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
for(int k=0;k<10;k++){
a=pow3(i)+pow3(j)+pow3(k);
b=i*100+j*10+k;
if(a>MAX)break;
if(a>=MIN&&a<=MAX&&a==b)
daff.insert(a);
}
for(set_iter it=daff.begin();it!=daff.end();it++)
cout<<(*it)<<" ";
return 0;
}
int main(){
daffodil();
return 0;
}
不知道这个算法相对于 从100到999的循环比起来那种更快 求大神分析下?
还有就是用set是否会影响运算速度....
还想问问如果要参加竞赛的话是否要尽量避免使用STL的容器.....