在枚举算法中往往把问题分解成二部分:
1)一一列举:
这是一个循环结构。要考虑的问题是如何设置循环变量、初值、终值和递增值。循环变量是否参与检验。大多数用于输入。
2)检验:
一般是一个分支结构。要考虑的问题是检验的对象是谁?大多数用于结果输出。
¨
for( i = 1; i<= ? ; i ++ )
if ( i % ? == 0 )
cout << i<< " "
枚举法的框架结构:
for(a1=a11;a1<=a1k;a1++)
for(a2=a21;a2<=a2k;a2++)
.....
for(ai=ai1;ai<=aik;ai++)
.....
for(an=an1;an<=ank;an++)
if(状态(a1,...,ai...,an)满足检验条件)输出问题的解;