#include <iostream>
#include <string>
using namespace std;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
char strSets[10][5] =
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
"",
"",
"abc",
"def",
"ghi",
"jkl",
"mno",
"pqrs",
"tuv",
"wxyz"
};
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
int count[10] =
{0, 0, 3, 3, 3, 3, 3, 4, 3, 4};
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void Display1(int num[], int counts)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
int index[10] =
{0};
while(true)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
int i;
for(i = 0; i < counts; i++)
cout<<strSets[num[i]][index[i]];
cout<<endl;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
int temp = counts - 1;
while(temp >= 0)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if(index[temp] < count[num[temp]] - 1)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
index[temp]++;
break;
}
else
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
index[temp] = 0;
temp--;
}
}
if(temp < 0)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
break;
}
}
};
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void display2(int num[], int temp[], int index, int counts)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
if(counts == index)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
int i;
for(i = 0; i < counts; i++)
cout<<strSets[num[i]][temp[i]];
cout<<endl;
return;
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
for(temp[index] = 0; temp[index] < count[num[index]]; temp[index]++)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
display2(num, temp, index + 1, counts);
}
};
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void main()
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
int z[4] =
{2, 3, 4, 5};
int j;
Display1(z, 4);
cin>>j;
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
int temp[10] =
{0};
display2(z, temp, 0, 4);
cin>>j;
}
posted on
2009-07-05 00:42
Jackill
阅读(
282)
评论()
编辑
收藏
举报