如果把1到5写成英文单词,分别是:one, two, three, four, five,这些单词一共用了3 + 3 + 5 + 4 + 4 = 19个字母。

如果把1到1000都写成英文单词,一共要用多少个字母?

注意: 不要算上空格和连字符。例如,342(three hundred and forty-two)包含23个字母,而115(one hundred and fifteen)包含20个字母。单词“and”的使用方式遵循英式英语的规则。

package EULER17;/*** Created by Administrator on 2016/9/14.* 如果把1到5写成英文单词,分别是:one, two, three, four, five,这些单词一共用了3 + 3 + 5 + 4 + 4 = 19个字母。* 如果把1到1000都写成英文单词,一共要用多少个字母?* 注意: 不要算上空格和连字符。例如,342(three hundred and forty-two)包含23个字母,而115(one hundred and fifteen)包含20个字母。单词“and”的使用方式遵循英式英语的规则。* 20以下和整十数是全部数字单词,逐个位算长度再稍微加点逻辑判断就成* 有时设计算法除了时间和空间,还要考虑扩展性*/
public class EULER17 {public static void main(String[] args){int letterNum = 0;for (int i=1;i<1001;i++){letterNum += letterNum(i);}System.out.print(letterNum);}//获取一个数的英文字母总数public static int letterNum(int num){if (num == 1000)return 11;int letterNum = 0;int[] bitArr = new int[4];int i = 0;do {bitArr[i] = num%10;num /= 10;i++;}while (num > 0 && i < 4);if (bitArr[1] < 2){letterNum += getSpecialNum(bitArr[1] * 10 + bitArr[0]);}else {letterNum += (getSpecialNum(bitArr[1]*10)+getSpecialNum(bitArr[0]));}if (bitArr[2] > 0){letterNum += letterNum>0?10:7;//hundred或hundred andletterNum += getSpecialNum(bitArr[2]);}return letterNum;}//获取1-9,11-19,和整十的字母数public static int getSpecialNum(int num){switch (num){case 1://onecase 2://twocase 6://sixcase 10:return 3;//tencase 4://fourcase 5://fivecase 9:return 4;//ninecase 3://threecase 7://sevencase 8://eightcase 40://fortycase 50://fiftycase 60:return 5;//sixtycase 11://elevencase 12://twelvecase 20://twentycase 30://thirtycase 80://eightycase 90:return 6;//ninetycase 15://fifteencase 16://sixteencase 70:return 7;//seventycase 13://thirteencase 14://fourteencase 18://eighteencase 19:return 8;//nineteencase 17:return 9;//seventeendefault:return 0;}}
}

表达数字的英文字母计数相关推荐

  1. placeholder=请输入用户名(六位数字加英文字母)

    placeholder="请输入用户名(六位数字加英文字母)" 转载于:https://www.cnblogs.com/nc-blog/p/4122768.html

  2. C# 判断输入的字符串是否只包含数字和英文字母

    /// <summary>/// 判断输入的字符串是否只包含数字和英文字母/// </summary>/// <param name="input"& ...

  3. 分别统计其中数字、英文字母和其它字符的个数

    从键盘输入20个字符,存放在一个字符数组中,然后分别统计其中数字.英文字母和其它字符的个数.( 其中字母在字符的值在65 – 90,97 – 122 为字母,字符 #include<stdio. ...

  4. Pb数字变成英文字母金额

    Pb数字变成英文字母金额 在pb中,想把阿拉伯数字的金额转成英文字母的金额,实现如下效果: 那么先建立一个函数:f_numberToEnglishAmt() 下面是建立函数的语句,大家可以复制下来,创 ...

  5. Xshell vim使用右侧数字键盘时数字变成英文字母的解决办法

    在通过Xshell连接公司服务器进行工作时发现一个小问题,使用右侧数字键盘时数字的时候,数字变成英文字母了 如下: 123456789变成了yxwvutsrq 并且还自动换行,当然不使用右侧数字键就不 ...

  6. java treemap字母排序_Java TreeMap对数字,英文字母,汉字等排序例子

    首页 > 基础教程 > 集合框架 > TreeMap类 Java TreeMap对数字,英文字母,汉字等排序例子 1. 对于一些简单的数字,英文字母等排序 TreeMap hm = ...

  7. 2020年全国高校计算机能力挑战赛C++初赛程序设计题2:九键拼音中数字与英文字母成对应关系:2--abc, 3-def, 4-ghi, 5--jkl, 6--mno, 7--pqrs, 8--tuv

    2020年全国高校计算机能力挑战赛C++初赛程序设计题2:九键拼音中数字与英文字母成对应关系:2–abc, 3-def, 4-ghi, 5–jkl, 6–mno, 7–pqrs, 8–tuv, 9–w ...

  8. python matplotlib绘图、混淆矩阵 汉字字体、数字、英文字母的设置

    最近在写一篇文章的时候,文章对图片格式有要求:图中汉字用宋体六号.数字和英文字母用新罗马字体,这些都需要在一张图中表现出来.经过一番查找摸索,现归纳整理如下: 对坐标轴设置 现假设有如下要求:在一张图 ...

  9. js判断字符串长度,and 是否包含数字,英文字母,汉字

    1.使用js判断字符串是否包含数字,英文字母,汉字 String str = "这是字符串"; 1> var a = /[0-9]/; var b = a.test(str) ...

最新文章

  1. pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换
  2. 【报告】2014年移动端二次元用户调查报告:进击的90后
  3. jparepository查询所有_JPA – JpaRepository 中使用的查询方法
  4. C++基础教程示例详解:C++中的I/O重定向
  5. C++ UNICODE 编程从入门到精通
  6. 金兄的境界:我的名字搜索终于出来了。重要信息声明,并永久置顶。我的博客在零网zeronet...
  7. 【读一本书】《昇腾AI处理器架构与编程》--神经网络基础知识(2)
  8. 浅谈相对定位与绝对定位
  9. python制作u盘病毒_十行代码--用Python写一个USB病毒!
  10. rocket mq 监听端口_如何使用Jmeter实现MQ数据的发送和接收?性能测试实战篇
  11. 自学python能学成吗-自学Python能学会吗 零基础怎么学
  12. Android data分区格式F2FS改为EXT4
  13. android获取周围AP信息(上)
  14. 停掉一台服务器,Nginx响应慢(转载)
  15. 电子邮件链接mailto_“ 3个链接”电子邮件的历史记录以及曾经发送的每个链接的存档...
  16. ps4微软服务器地址,PSN服务更新 终于可以在PC上玩PS4游戏了!
  17. 数仓之事实表和维度表(一)
  18. Flink在bilibili的优化与实践
  19. PowerDesigner下载安装教程
  20. Ubuntu关机(shut down)(power off)后不断电的问题

热门文章

  1. MySQL 中的反斜杠 \\
  2. 5G资费其实已经大幅下降,消费者不愿用5G在于信号太差了
  3. python编写双人游戏
  4. java的单步调试_java存储过程单步调试详解
  5. C语言练习,求和,平均数,取余。
  6. 山东大学2018级操作系统实验二
  7. html中改变字体的大小
  8. html cookie登陆,简单操作 Cookie 注册登录
  9. 电商运营培训课程下载什么软件?
  10. MATLAB程序实现经纬度转换成平面坐标