编程之美——电话号码对应英语单词
    电话号码盘一般可以用于输入字母。如用2可以输入A,B,C,用3可以输入D,E,F等...
    问题1:可以根据这样的对应关系设计一个程序,尽可能快的从这些字母组合中找到一个有意义的单词来表述一个电话号码呢?
    程序如下:
#include<iostream>
using namespace std;
#define N 4
char c[10][10]={" "," ","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"};
int number[N]={2,4,7,9};
int total[10]={0,0,3,3,3,3,3,4,3,4};
int answer[N];
void Search(int *number,int n); //非递归形式
void RecursiveSearch(int *number,int *answer,int index,int n);//递归形式
int main()
{
  Search(number,N);
  RecursiveSearch(number,answer,0,N);
}
void Search(int *number,int n)
{
  int i;
  while(true)
  {
    for(i=0;i<n;++i)
cout<<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;
  }
}

void RecursiveSearch(int *number,int *answer,int index,int n)
{
  if(index==n)
  {
    for(int i=0;i<n;i++)
cout<<c[number[i]][answer[i]]<<" ";
printf("\n");
return;
  }
  for(answer[index]=0;answer[index]<total[number[index]];answer[index]++)
  {
    RecursiveSearch(number,answer,index,n);
  }
}


    

编程之美——电话号码对应英语单词相关推荐

  1. 编程之美 - 电话号码对应英语单词

    问题描述: 电话的号码盘上一个数字对应着几个字母,一串数字对应着几种字母的组合. 现在给定一组数字,列出对应的字母的组合. 思路: 例如:4对应键盘上  GHI, 2对应键盘上 ABC 数字 42 的 ...

  2. 编程时学到的英语单词

    编程时学到的英语单词 2015-09-02 学习openResty的时候,发现很多单词特别有意思.有些东西,是我们平常所用到的,但因为词汇量少的缘故所以很少使用. 1. We first create ...

  3. 第3章 结构之法——电话号码对应英语单词

    电话号码对应英语单词 问题描述 分析与解法 详细代码如下: 1 package chapter3jiegouzhifa.TelephoneMapWords; 2 /** 3 * 电话号码对应英语单词 ...

  4. Bailian3712 电话号码生成英语单词【查表】

    3712:电话号码生成英语单词 总时间限制: 1000ms 内存限制: 65536kB 描述 我们知道手机键盘上一般可以用于输入字母,2可以输入a,b,c,3可以输入d,e,f,4可以输入g,h,i, ...

  5. 3.2电话号码对应英语单词

    方法一.  神奇的双重while循环.  注:显然可以利用这种方法,打印出任意一个N维数组的任意组合. 个人理解:此双重循环的关键在于 answer[ ] 数组以及索引 k .answer[ ] 数组 ...

  6. 「软工结对编程」:最长英语单词链

    项目 内容 这个作业属于哪个课程 2023年北航敏捷软件工程社区 这个作业的要求在哪里 结对项目-最长英语单词链 我在这个课程的目标是 学习有关软件开发的方法论,熟悉基本的软件开发流程,通过" ...

  7. 英文不好学c语言,英语不好怎么学编程?这里有你必备的英语单词

    有很多要转行的小伙伴来问我,英语不好能学编程吗? 只是入门阶段学编程,并不需要多好的英语水平.简单认识一些常用的英语就可以了,毕竟现在程序开发环境对于小白来说也很友好,就算你不用汉译版的,也有很多教程 ...

  8. 编程之美-电话号码对应英文单词方法整理

    [试题描述] 问题1的方法一:直接循环法 假设电话号码只有3位,那么可能会有人很快写出3个for循环,如下: 对以上程序进行简单修改,增强扩展性: 问题1的方法二:递归的解法 ------------ ...

  9. 3.2 电话号码对应英语单词

    原始问题如下:手机上面的数字键均对应了几个字符,譬如2对应了a,b,c.问题是当输入一段数字后,求出所有可能的字符组合 第一种方法:假设电话号码是n个数字,那么就n个for循环. 这方法果断不好 第二 ...

最新文章

  1. 原 Linux搭建SVN 服务器2
  2. 判断五个分数等级划分_压力表精度等级怎么算?压力表精度等级划分及检验项目...
  3. ring0和ring3的区别
  4. 《Essential C++》笔记之文件读写示例
  5. 怎样获取UIWebView 的文字的高度
  6. java.io.serializable_java.io.NotSerializableException即使我实现“Serializable”
  7. linux 下安装 vim
  8. Javascript 细节散记
  9. 网络直播延迟该如何解决这个问题
  10. 倾斜摄影在农房一体不动产测量中的技术流程(Smart3D+EPS)
  11. 前端HTML中防止用户在短时间内频繁多次点击按钮
  12. 鲁大师2023年Q1手机报告:ColorOS蝉联榜首
  13. 【Linux认证考试分数线多少】
  14. (进制转换)—— 十六进制转换
  15. 京东2018校招研发笔试题记录
  16. 9、Horizon 连接服务器CA证书配置
  17. Python与openpyxl的不解之缘【1】
  18. 关于汉字与Ascii码
  19. 深度卷积神经网络演化历史及结构改进脉络总结
  20. 国内40多家金融机构数据被窃,多家知名基金上榜

热门文章

  1. lck文件 虚拟机_虚拟机 lck文件
  2. 常见15个C语言的标准库
  3. 【Vi 编辑器进阶】
  4. 软件工程师职业道德规范和实践要求
  5. 科目二如何能顺利通过?科目二经验
  6. js的匀加速,匀减速运动
  7. Java锁的逻辑(结合对象头和ObjectMonitor)
  8. OpenCV 背景差分法
  9. IoTDB在Linux上部署的傻瓜式教程
  10. 隐藏前端展示id的方法