表达数字的英文字母计数
如果把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;}}
}
表达数字的英文字母计数相关推荐
- placeholder=请输入用户名(六位数字加英文字母)
placeholder="请输入用户名(六位数字加英文字母)" 转载于:https://www.cnblogs.com/nc-blog/p/4122768.html
- C# 判断输入的字符串是否只包含数字和英文字母
/// <summary>/// 判断输入的字符串是否只包含数字和英文字母/// </summary>/// <param name="input"& ...
- 分别统计其中数字、英文字母和其它字符的个数
从键盘输入20个字符,存放在一个字符数组中,然后分别统计其中数字.英文字母和其它字符的个数.( 其中字母在字符的值在65 – 90,97 – 122 为字母,字符 #include<stdio. ...
- Pb数字变成英文字母金额
Pb数字变成英文字母金额 在pb中,想把阿拉伯数字的金额转成英文字母的金额,实现如下效果: 那么先建立一个函数:f_numberToEnglishAmt() 下面是建立函数的语句,大家可以复制下来,创 ...
- Xshell vim使用右侧数字键盘时数字变成英文字母的解决办法
在通过Xshell连接公司服务器进行工作时发现一个小问题,使用右侧数字键盘时数字的时候,数字变成英文字母了 如下: 123456789变成了yxwvutsrq 并且还自动换行,当然不使用右侧数字键就不 ...
- java treemap字母排序_Java TreeMap对数字,英文字母,汉字等排序例子
首页 > 基础教程 > 集合框架 > TreeMap类 Java TreeMap对数字,英文字母,汉字等排序例子 1. 对于一些简单的数字,英文字母等排序 TreeMap hm = ...
- 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 ...
- python matplotlib绘图、混淆矩阵 汉字字体、数字、英文字母的设置
最近在写一篇文章的时候,文章对图片格式有要求:图中汉字用宋体六号.数字和英文字母用新罗马字体,这些都需要在一张图中表现出来.经过一番查找摸索,现归纳整理如下: 对坐标轴设置 现假设有如下要求:在一张图 ...
- js判断字符串长度,and 是否包含数字,英文字母,汉字
1.使用js判断字符串是否包含数字,英文字母,汉字 String str = "这是字符串"; 1> var a = /[0-9]/; var b = a.test(str) ...
最新文章
- pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换
- 【报告】2014年移动端二次元用户调查报告:进击的90后
- jparepository查询所有_JPA – JpaRepository 中使用的查询方法
- C++基础教程示例详解:C++中的I/O重定向
- C++ UNICODE 编程从入门到精通
- 金兄的境界:我的名字搜索终于出来了。重要信息声明,并永久置顶。我的博客在零网zeronet...
- 【读一本书】《昇腾AI处理器架构与编程》--神经网络基础知识(2)
- 浅谈相对定位与绝对定位
- python制作u盘病毒_十行代码--用Python写一个USB病毒!
- rocket mq 监听端口_如何使用Jmeter实现MQ数据的发送和接收?性能测试实战篇
- 自学python能学成吗-自学Python能学会吗 零基础怎么学
- Android data分区格式F2FS改为EXT4
- android获取周围AP信息(上)
- 停掉一台服务器,Nginx响应慢(转载)
- 电子邮件链接mailto_“ 3个链接”电子邮件的历史记录以及曾经发送的每个链接的存档...
- ps4微软服务器地址,PSN服务更新 终于可以在PC上玩PS4游戏了!
- 数仓之事实表和维度表(一)
- Flink在bilibili的优化与实践
- PowerDesigner下载安装教程
- Ubuntu关机(shut down)(power off)后不断电的问题