int main(void)
{
int n=4;
int total[10]={0,0,3,3,3,3,3,4,3,4};
int number[4]={2,3,4,5};
int answer[4]={0};
代码清单3-2 |
char c[10][10] =
{
"", //0
"", //1
"ABC", //2
"DEF", //3
"GHI", //4
"JKL", //5
"MNO", //6
"PQRS", //7
"TUV", //8
"WXYZ", //9
};
代码清单3-3 |
for(answer[0] = 0; answer[0] < total[number[0]]; answer[0]++)
for(answer[1] = 0; answer[1] < total[number[1]]; answer[1]++)
for(answer[2] = 0; answer[2] < total[number[2]]; answer[2]++)
{
for(int i = 0; i < 3; i++)
printf("%c",c[Number[i]][answer[i]]);
printf("/n");
}
代码清单3-4 |
while(true)
{
// n为电话号码的长度
for(i = 0; i < n; i++)
printf("%c", c[number[i]][answer[i]]);
printf("/n");
int k = n - 1;
while(k >= 0)
{
if(answer[k] < total[number[k]] - 1)
{
answer[k]++;
break;
}
else
{
answer[k] = 0; k--;
}
}
if(k < 0)
break;
}
{
// n为电话号码的长度
for(int i = 0; i < n; i++)
printf("%c", c[number[i]][answer[i]]);
printf("/n");
num++;
int k = 0;
while(k >= 0)
{
if(answer[k] < total[number[k]] - 1)
{
answer[k]++;
break;
}
else
{
answer[k] = 0; k++;
}
}
if(k>n)
break;
}
printf("%d",num);
}