手机按键全排列

#include <iostream>
#include 
<string>
using namespace std;

char strSets[10][5= 
ExpandedBlockStart.gifContractedBlock.gif
{
    
"",
    
"",
    
"abc",
    
"def",
    
"ghi",
    
"jkl",
    
"mno",
    
"pqrs",
    
"tuv",
    
"wxyz"
}
;

ExpandedBlockStart.gifContractedBlock.gif
int count[10= {0033333434};

void Display1(int num[], int counts)
ExpandedBlockStart.gifContractedBlock.gif
{
ExpandedSubBlockStart.gifContractedSubBlock.gif    
int index[10= {0};
    
while(true)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        
int i;
        
for(i = 0; i < counts; i++)
            cout
<<strSets[num[i]][index[i]];
        cout
<<endl;

        
int temp = counts - 1;
        
while(temp >= 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
if(index[temp] < count[num[temp]] - 1)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                index[temp]
++;
                
break;
            }

            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                index[temp] 
= 0;
                temp
--;
            }

        }

        
if(temp < 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
break;
        }

   
    }

}
;

void display2(int num[], int temp[], int index, int counts)
ExpandedBlockStart.gifContractedBlock.gif
{
    
if(counts == index)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        
int i;
        
for(i = 0; i < counts; i++)
            cout
<<strSets[num[i]][temp[i]];
        cout
<<endl;
        
return;
    }


    
for(temp[index] = 0; temp[index] < count[num[index]]; temp[index]++)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        display2(num, temp, index 
+ 1, counts);
    }

}
;

void main()
ExpandedBlockStart.gifContractedBlock.gif
{
ExpandedSubBlockStart.gifContractedSubBlock.gif    
int z[4= {2345};
    
int j;
    Display1(z, 
4);
    cin
>>j;
ExpandedSubBlockStart.gifContractedSubBlock.gif    
int temp[10= {0};
    display2(z, temp, 
04);
    cin
>>j;
}

转载于:https://www.cnblogs.com/jackill/archive/2009/07/05/1517038.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值