这是对上一篇的扩展,输出含7、8和能被7、8整除的数,以及用C++stl做数组的全排列,但是效率不高。
#include <iostream>
#include <list>
using namespace std;
void for_num(int num, int num2, int max);
void other(int i, int num, int num2);
void list_use();
int main(void)
{
list_use();
//输出含7、8和能被7、8整除的小于20的正整数
for_num(7, 8, 20);
return 0;
}
void list_use()
{
list<int> L1;
int a[] = {3,6,7,9};
list<int>::iterator iter1,iter2,iter3;
for(int i=0; i<4; i++)
{
L1.push_back(a[i]);
}
for(iter1=L1.begin(); iter1!=L1.end(); iter1++)
for(iter2=L1.begin(); iter2!=L1.end(); iter2++)
for(iter3=L1.begin(); iter3!=L1.end(); iter3++)
{
if((*iter1)!=(*iter2)&&(*iter2)!=(*iter3)&&(*iter1)!=(*iter3))
{
cout<<*iter1<<*iter2<<*iter3<<endl;
}
}
}
void for_num(int num, int num2, int max)
{
int i;
for(i=1; i<=max; i++)
{
if(i%num == 0 ||i%num2 == 0)
{
cout<<i<<";" ;
continue;
}
other(i, num, num2);
}
}
void other(int i, int num, int num2)
{
int j = 0;
j = i;
while(j > 10)
{
if(j%10 == num || j%10 == num2)
{
cout<<i<<";" ;
}
j = j/10;
}
}