题目:列出九宫格键盘输入的所有字母组合

思路:将字母的组合看成k进制的数,列出字母组合的过程即为对数进行加法运算。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char* letter[] = {"abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};

void listAll(char* input)
{
	int len = strlen(input);
	int total = 1;
	int i;
	for ( i=0; i<len; i++)
	{
		total = total*strlen(letter[input[i]-'0']);
	}

	for( i=0; i<total; i++)
	{
		//char item[4];
		char* item = (char*)malloc(len+1);
		int j;
		for( j=0; j<len; j++)
		{
			int size = strlen(letter[input[j]-'0']);
			int num = i;
			int index = num%size;
			num = num/size;
			item[j] = letter[input[j]-'0'][index];	
		}
		item[j] = '\0';
		printf("%s\n",item);
		
	}
}

int main()
{
	char* input = "025";
	listAll(input);

	return 0;
}

  

 

相关文章:

  • 2021-05-29
  • 2021-08-20
  • 2022-01-08
  • 2021-10-22
  • 2022-01-17
  • 2021-07-03
  • 2022-01-11
猜你喜欢
  • 2022-12-23
  • 2022-02-28
  • 2022-01-19
  • 2022-12-23
  • 2021-08-22
  • 2021-08-16
  • 2022-12-23
相关资源
相似解决方案