列出九宫格输入组合

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#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;
}

  

 

posted @   simon1024  阅读(397)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
点击右上角即可分享
微信分享提示