• 算法实现数字编号翻译为英文


    将编号“翻译”成英文。例35706“翻译”成three-five-seven-zero-six。看到题目的第一反应是对数字进行求余逐个分开,之后用switch  case:进行分类判断。再创建一个字符串数组进行存储判断到的字符串,最后进行倒叙输出,就得到编号的翻译内容。方法一般,可以接受。如果我们进一步分析,便会发现下面我要介绍的方法,方便简洁了不少,我们应在功能实现的同时考虑下算法的优劣,以及代码的优雅与否。下面为另外一种方法的介绍:

    我们可以创建字符串数组存储0-9的英文字符串,即:

    char eng[10][6]={"zero","one","two","three","four","five","six","seven","eight","nine"}

    创建数组 num[10] 用于存储数字编号。

    最后关键一步:存储的数字数组倒叙依次在eng[]的字符串数组中根据下标查找。即:eng[num[0]]。

    代码如下(C语言版):

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 int main()
     4 {
     5 char eng[10][6]={"zero","one","two","three",
     6 "four","five","six","seven","eight","nine"};
     7 int n,end=0,num[10];
     8 printf("输入你要翻译的数字:");
     9 scanf("%d",&n);
    10 int temp=n;
    11 while(temp!=0){
    12 num[end++]=temp%10;
    13 temp/=10;
    14 }
    15 end-=1;
    16 for(;end>0;end--){
    17 printf("%s-",eng[num[end]]);
    18 }
    19 printf("%s",eng[num[0]]);
    20 return 0;
    21 }

    程序运行如图:

    附注:原创不易,转载说明出处。

    http://www.cnblogs.com/xsmile

    ----------------------------------------声明----------------------------------------
    作者:xsmile
    仅自己学习过程技术总结,如有哪里有误的地方,欢迎指正。
    原创不易,如需转载,请注明出处及地址 www.cnblogs.com/xsmile
    ----------------------------------------end----------------------------------------
  • 相关阅读:
    素因子分解
    【转载】一张表看懂LTE和5G NR的区别
    看国家宝藏,顺便学习一下国密算法
    LTE-Advanced(4G)主要技术学习:CA、CoMp、HetNet
    未来移动通信的需求与挑战
    傅里叶级数
    正余弦函数的复指数表示
    网络基础——相关面试考点
    操作系统——相关面试考点
    小米2015笔试编程题
  • 原文地址:https://www.cnblogs.com/xsmile/p/7725845.html
Copyright © 2020-2023  润新知