输出含7、8和能被7、8整除的数,以及用C++stl做数组的全排列

来源:互联网 发布:淘宝超过7天还能退货吗 编辑:程序博客网 时间:2024/05/21 10:55

这是对上一篇的扩展,输出含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;


}
}

原创粉丝点击