- 浏览: 115392 次
- 性别:
- 来自: 湖南
文章分类
最新评论
-
一步一个天涯:
good.
tomcat配置热启动,我试过有用的方式 -
yuechen323:
哥们!!看了你博客的大部分文章,写的都非常的通俗易懂,谢谢~ ...
我在java中碰到的设计模式 -
悲剧了:
...
jstl
一个关于得到数字个数的问题?
关键字: java应用今天遇到这样一个问题?
我想得到1000000之内包含2、8、00这几个数字的个数?
要求这个数字里必须有2,8,和两个0,这些数字的位置可以是任意的排放。
我也得到结果啦,不过算法很复杂,请问如果用正则表达式要怎么去实现?
以下是本人的复杂算法:
@Test
public void testNum() {
int num = 1000000;
int m = 1;
for (int i = 2000; i < num; i++) {
String x = "" + i;
for (int j = 0; j < x.length(); j++) {
// System.out.print(x.charAt(j));
String temp = String.valueOf(x.charAt(j));
// 得到的包含数字2的所有值
if (temp.equals("2")) {
// System.out.println(x);
for (int a = 0; a < x.length(); a++) {
String temp1 = String.valueOf(x.charAt(a));
// 决断数字中是否包含数字8
if (temp1.equals("8")) {
// System.out.println(x);
for (int b = 0; b < x.length(); b++) {
// 得到当前
String temp2 = String.valueOf(x.charAt(b));
int q = x.indexOf("0");
if (x.indexOf("0", q + 1) > 0) {
// System.out.println(x);
m++;
}
}
}
}
}
}
}
System.out.println("得到数量:" + m / 5);
}
我想得到1000000之内包含2、8、00这几个数字的个数?
要求这个数字里必须有2,8,和两个0,这些数字的位置可以是任意的排放。
我也得到结果啦,不过算法很复杂,请问如果用正则表达式要怎么去实现?
以下是本人的复杂算法:
@Test
public void testNum() {
int num = 1000000;
int m = 1;
for (int i = 2000; i < num; i++) {
String x = "" + i;
for (int j = 0; j < x.length(); j++) {
// System.out.print(x.charAt(j));
String temp = String.valueOf(x.charAt(j));
// 得到的包含数字2的所有值
if (temp.equals("2")) {
// System.out.println(x);
for (int a = 0; a < x.length(); a++) {
String temp1 = String.valueOf(x.charAt(a));
// 决断数字中是否包含数字8
if (temp1.equals("8")) {
// System.out.println(x);
for (int b = 0; b < x.length(); b++) {
// 得到当前
String temp2 = String.valueOf(x.charAt(b));
int q = x.indexOf("0");
if (x.indexOf("0", q + 1) > 0) {
// System.out.println(x);
m++;
}
}
}
}
}
}
}
System.out.println("得到数量:" + m / 5);
}
不用正则表达式的,把你的算法改进一下就好了:
public class Matcher {
private int mark = 0;
public void match(int digit) {
switch (digit) {
case 0:
mark |= (0 < (mark & 1)) ? 2 : 1;
break;
case 2:
mark |= 4;
break;
case 8:
mark |= 8;
break;
}
}
public boolean isMatched() {
return (mark & 15) > 0;
}
}
//.....
int count = 0;
for (int i = 2000; i < 1000000; i++) {
Matcher matcher = new Matcher();
for (int num = i; num > 0; num /= 10) {
matcher.match(num % 10);
}
if (matcher.isMatched()) {
count++;
}
}
//.....
发表评论
-
主题:IT工作检讨书
2010-09-16 17:44 1019由于上周请假的事情,被上级要求写一份检讨书且不少于100字,并 ... -
这里有自己收集整理的关于SVN的东西,1——SVN基本使用手册 2——Subversion 错误信息一览表.3——svn的一些常见问题
2010-08-28 09:29 1264这里我会把我自己整理的东西都贴出来,后面我还会把文档供给大家下 ... -
主题:别为大公司卖命
2010-08-28 09:27 7501.大公司最大的困扰,就是无法准确测量每个员工的贡献。它会 ... -
Javascript——悟透JavaScript
2010-08-27 16:20 974Javascript——悟透JavaS ... -
电信拨号器
2010-08-26 10:38 942电信拨号器 关键字: 电信拨号程序、swing ... -
关于RSS的聚合---OPML
2010-08-26 10:34 1657关于RSS的聚合---OPML 关键字: rss,o ... -
hibernate集合映射inverse和cascade详解 (转载)
2010-08-26 10:31 739hibernate集合映射inverse和cascad ... -
互联网高性能系统构建思路
2010-08-26 10:30 675互联网高性能系统构 ... -
程序员修炼之七杀秘技
2010-08-26 10:30 754程序员修炼之七杀秘技 关键字: 程序员修炼、java ... -
Java多线程编程
2010-08-26 10:26 670Java多线程编程 关键 ... -
浅析Hibernate下数据批量处理方法
2010-08-26 10:25 778浅析Hibernate下数据批量处理方法 关键字: ... -
Javascript使用上的几点考虑
2010-08-26 10:24 655Javascript使用上的几点考虑 关键字: js ... -
高级程序员如何应对职场压力?
2010-08-26 10:24 688高级程序员如何应对职场压力? 关键字: 应用职场压力 ... -
认识Web网站的性能测试工具
2010-08-26 10:23 905认识Web网站的性能测试工具 关键字: web网站、 ... -
WebServices秘诀:设计SOA
2010-08-26 10:20 628WebServices秘诀:设计SOA 关键字: w ... -
XFire 入门
2010-08-26 10:20 707XFire 入门 关键字: xfire入门 【 ... -
HttpClient入门
2010-08-26 10:19 739HttpClient入门 关键字: httpclie ... -
JavaScript——延迟加载技术
2010-08-26 10:15 901JavaScript——延迟加载技术 文章分类:We ... -
经典算法——鸡尾酒排序(冒泡算法改良)
2010-08-26 10:12 834经典算法——鸡尾酒 ... -
封闭开发是为何?
2010-08-26 10:00 2514封闭开发是为何? 加班 ...
相关推荐
对于给定的n位正整数a 和正整数k,设计一个算法找出剩下数字组成的新数 最小的删数方案。 «编程任务: 对于给定的正整数a,编程计算删去k个数字后得到的最小数。 Input 由文件input.txt提供输入数据。文件的第1...
对于一个有 n 个数字的正整数 a, 去掉其中任意 k (≤ n) 个数字后, 剩下的数字按原次序排列组成一个新的正整数. 本题对于给定的正整数 a, 请计算删去 k 个数字后得到的最小数. Input 有多个测试用例. 每个测试...
试着设计一个算法,找出删去k个数,剩下数字组成的新数最小的删数方案。 输入格式 可输入多组测试数据(不超过50组测试数据),每组测试数据分两行,每行一个数,数的含义如下。 第一行:正整数a(a是大于0的一个n...
数字母个数
从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。 处理方法: 1、定义一个字符串数组,保存汉字数字 2、然后将传入的数字转换成字符串,...
给定一个整数,请将该数各个位上的数反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。 Input 输入有多组数据,每组数据就一行为一个整数N(-...
【题目】将一个m位(m>1)的正整数n,依次去掉n中的某一位数字,得到m个整数,并将这m个整数按从小到大的次序排列后输出。 例如,对于整数387,依次去掉其中一位后,得到三个数:87、37、38,排序后为:37、38、87...
玩家尝试输入一个n位数,得到数字对个数和数字与位置均对个数的反馈,直到完全猜中这个数为止。 如:随机数为123,玩家猜421,则数字对个数2(即1和2在两个数中均有),数字与位置均对个数为1(只有2的数字与位置都...
3、 要考虑输入溢出问题,此时可以在用户输入后加一个判断,若超出存储数组的最大限度则给用户错误警告并退出。 4、 输出:考虑到格式,如zero-two,最后一个字符后没有“-”,所以最后一个字符要单独输出。
回文数是指将数含有的数字逆序排列后得到的数和原数相同,例如12121,4224,6778776等都是回文数。 1)程序具有判断用户的输入是否为合法整数的功能。对非法输入(例如含有字母)要进行处理。 2)要判断输入数的位数,...
一个素数,当她的数字位置对换以后仍为素数,这样的数称为绝对素数。
给您4个数字,不论您如何计算,您能计算得到24吗?完全由本人独立开发,现免费提供,供广大爱好者使用。功能演示网址:http://njl.sysyedu.cn/wup/pic/24/
任何一个各位数字不全相同的三位数,经有限次“重排求差”操作,总会得到495。最后所得的495即为三位黑洞数。所谓“重排求差”操作即组成该数的数字重排后的最大数减去重排后的最小数。例如,对三位数207:第1次重排...
完数是指一个整数恰好等于它的因子之和(除自身外),则称这个数为完数。从键盘先后输入两个不大于9999的正整数m和n,若m>n,则交换两数。然后求m~n(m和n均为正整数且m≤n)之间的所有完数。 【输入形式】 先后...
对于一个有 n 个数字的正整数 a, 去掉其中任意 k (≤ n) 个数字后, 剩下的数字按原次序排列组成一个新的正整数. 本题对于给定的正整数 a, 请计算删去 k 个数字后得到的最小数. Input 有多个测试用例. 每个测试...
任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456。求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则前边补0)。如此往复,...
编写一个Java应用程序。用户从键盘输入一个1~99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,如12121和3223都是回文数
回文数是指将数含有的数字逆序排列后得到的数和原数相同,例如12121,4224,6778776等都是回文数。 1)程序具有判断用户的输入是否为合法整数的功能。对非法输入(例如含有字母)要进行处理。 2)要判断输入数的位数,...
数字验证码的demo,该demo需要引入jQuery,相比于我的另一篇,该页面更简洁
读取配置文件获得数字进行计算读取配置文件获得数字进行计算读取配置文件获得数字进行计算