算法竞赛入门经典
p32
习题2-10
#include
#include
#include
using namespace std;
vector v;
void add2v(int k);
int main()
{
int cou = 0;
for(inti=123;i<=987/3;i++)
{
int m = i*2;
int n = i*3;
add2v(i);
add2v(m);
add2v(n);
if(v.size()==9)//每个数字恰好使用了一次
{
cout<<"第"<<++cou<<"组"<<endl;
cout<<i<<" "<<m<<" "<<n<<endl;
}
v.clear();
}
return 0;
}
void add2v(int k)
{
vector::iteratorfirst,last,result;
for(inti=0;i<3;i++)
{
first = v.begin();
last = v.end();
result = find(first,last,k);
if(result=last&&k!=0)//排除0
{
v.push_back(k);
k=k/10;
}
}
}
本文通过C++实现了一个算法竞赛中的经典习题,探讨了如何找出所有满足条件的三位数,这些数及其两倍和三倍能共同构成一组不重复的九个数字。代码展示了从123到329的遍历过程,并检查每组数字是否符合要求。
696

被折叠的 条评论
为什么被折叠?



