- 浏览: 119603 次
- 性别:
- 来自: 湖南
文章分类
最新评论
-
一步一个天涯:
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 1084由于上周请假的事情,被上级要求写一份检讨书且不少于100字,并 ... -
这里有自己收集整理的关于SVN的东西,1——SVN基本使用手册 2——Subversion 错误信息一览表.3——svn的一些常见问题
2010-08-28 09:29 1301这里我会把我自己整理的东西都贴出来,后面我还会把文档供给大家下 ... -
主题:别为大公司卖命
2010-08-28 09:27 7791.大公司最大的困扰,就是无法准确测量每个员工的贡献。它会 ... -
Javascript——悟透JavaScript
2010-08-27 16:20 1004Javascript——悟透JavaS ... -
电信拨号器
2010-08-26 10:38 983电信拨号器 关键字: 电信拨号程序、swing ... -
关于RSS的聚合---OPML
2010-08-26 10:34 1695关于RSS的聚合---OPML 关键字: rss,o ... -
hibernate集合映射inverse和cascade详解 (转载)
2010-08-26 10:31 788hibernate集合映射inverse和cascad ... -
互联网高性能系统构建思路
2010-08-26 10:30 706互联网高性能系统构 ... -
程序员修炼之七杀秘技
2010-08-26 10:30 785程序员修炼之七杀秘技 关键字: 程序员修炼、java ... -
Java多线程编程
2010-08-26 10:26 720Java多线程编程 关键 ... -
浅析Hibernate下数据批量处理方法
2010-08-26 10:25 836浅析Hibernate下数据批量处理方法 关键字: ... -
Javascript使用上的几点考虑
2010-08-26 10:24 712Javascript使用上的几点考虑 关键字: js ... -
高级程序员如何应对职场压力?
2010-08-26 10:24 713高级程序员如何应对职场压力? 关键字: 应用职场压力 ... -
认识Web网站的性能测试工具
2010-08-26 10:23 936认识Web网站的性能测试工具 关键字: web网站、 ... -
WebServices秘诀:设计SOA
2010-08-26 10:20 659WebServices秘诀:设计SOA 关键字: w ... -
XFire 入门
2010-08-26 10:20 732XFire 入门 关键字: xfire入门 【 ... -
HttpClient入门
2010-08-26 10:19 765HttpClient入门 关键字: httpclie ... -
JavaScript——延迟加载技术
2010-08-26 10:15 925JavaScript——延迟加载技术 文章分类:We ... -
经典算法——鸡尾酒排序(冒泡算法改良)
2010-08-26 10:12 862经典算法——鸡尾酒 ... -
封闭开发是为何?
2010-08-26 10:00 2569封闭开发是为何? 加班 ...
相关推荐
根据题目中的描述与提供的代码内容,本篇文章将详细介绍如何利用Java编程解决一个具体的组合问题:即使用数字1、2、3、4可以组成多少个不同的、无重复数字的三位数,并列出所有可能的组合。 ### 一、问题背景 题目...
对于给定的n位正整数a 和正整数k,设计一个算法找出剩下数字组成的新数 最小的删数方案。 «编程任务: 对于给定的正整数a,编程计算删去k个数字后得到的最小数。 Input 由文件input.txt提供输入数据。文件的第1...
这一步骤是十分必要的,因为只有当每个位置的数字都不相同时,我们才能得到一个有效的三位数。如果一个组合通过了if语句的检验,我们就可以将这个组合记录下来,并且增加计数器的数值。 对于输出的结果,我们可以...
在Main函数中,我们初始化了一个空的列表used来记录已使用的数字,并调用了GenerateNumbers函数开始生成三位数。GenerateNumbers函数通过遍历剩余的数字并递归调用自身来生成所有可能的组合。 运行这段代码,你会...
这个场景下,我们有一个名为“中文数字转成阿拉伯数字 java 实现”的压缩包,包含了一个实现此功能的Java包和一个单元测试类。下面我们将深入探讨这个功能的实现及其相关知识点。 首先,我们要理解中文数字和阿拉伯...
标题“同个数加减乘除得到某数(不使用括号)”涉及到的是一个数学问题,探讨如何通过单一数字的不同算术运算(加法、减法、乘法、除法)来构造出目标数,而过程中不使用括号来改变运算顺序。这种问题在编程领域中有时...
此题目的输入包括了多个测试用例,每个测试用例由两个部分组成:第一个部分为一个正整数`a`,第二个部分为一个正整数`k`表示需要删除的数字个数。 #### 核心思路分析 在处理这类问题时,首先应该明确的是,要构造...
题目要求给定一个长度为 n 的正整数 a 和一个整数 k,要求删除该数中的 k 个数字,使得剩余数字按原有顺序排列后组成的数最小。 **问题描述**: - **输入**:多组测试数据(不超过50组),每组包含两个整数 a 和 k...
首先,游戏的规则非常简单:选择一个任意的四位数(数字各不相同),按降序和升序排列这些数字,然后相减得到一个新的数字。接着,重复这个过程,即对新得到的数字进行排序并相减,直到结果变为6174或只剩下一个数字...
在编程领域,有时我们需要将一个整数分解成其各位数字并分别显示出来。在这个场景下,C语言可以提供一种简洁而高效的方法来实现这个功能。本文将深入探讨如何使用C语言编写小程序,来显示整数的每一位数字。 首先,...
【数字黑洞1】是一种有趣的数学现象,...总之,数字黑洞1是一个有趣的数学问题,它结合了基本的排序和数值运算,同时也展示了如何用算法来探索和理解数学规律。通过编程解决这个问题,可以提高对算法的理解和应用能力。
2. 原码是指一个二进制数的直接表示方式,其中最高位通常用来表示符号(0表示正,1表示负),其余位表示数值。 3. 反码用于负数的表示,正数的反码与其原码相同,负数的反码是其原码除符号位外其他位取反。 4. 补码...
总的来说,"24数"游戏的ASP代码实现是一个很好的实践案例,它将抽象的数学概念与具体的编程技术相结合,帮助我们理解编程不仅仅是关于语言语法,更是关于解决问题的艺术。无论是对数学爱好者还是编程初学者,都有很...
4. **数字签名验证**:苏珊收到信件后,用鲍勃提供的公钥解密数字签名,得到摘要,再将信件通过同样的哈希函数处理,比较两次获得的摘要是否一致来验证信件未被篡改。 #### 防范中间人攻击 1. **中间人攻击**:...
这个问题通过修改两行代码得到了解决,这展示了编程中的一个常见实践:不断优化和修复已存在的代码以适应更多的情况。 标签“数字转换”进一步确认了这是一个涉及数字表示转换的程序设计问题。在PHP中,这类问题...
例如,公式 `=CONCATENATE("'",A1)` 将会在单元格 A1 中的数字前添加一个单引号,使之成为文本格式。 在实际操作过程中,我们应按照以下步骤进行: 1. 首先,正常输入所有需要转换的数字数据。 2. 在新的一列中...
【标题】"用C语言编写的猜数字游戏"是一个经典的编程练习项目,它涉及到了C语言的基本语法、随机数生成、循环控制结构以及条件判断等多个关键知识点。这个游戏的核心是计算机生成一个四位数字,然后让用户尝试猜测这...
对于题目中的“数字黑洞”问题,其核心思想是针对一个五位数,将其数字进行重新排序以获得最大值和最小值,然后计算两者之差。这一过程不断重复,最终所有的数字都会陷入一个固定的循环中,这个循环被称为“数字黑洞...
题目要求编写一个名为`findNthDigit`的函数,该函数接收一个整数`n`作为参数,返回数字序列中的第`n`个数字。这个序列由0到9的数字依次组成,形成一个无限长的字符串,如"012345678910111213..."。 首先,我们需要...
玩家尝试输入一个n位数,得到数字对个数和数字与位置均对个数的反馈,直到完全猜中这个数为止。 如:随机数为123,玩家猜421,则数字对个数2(即1和2在两个数中均有),数字与位置均对个数为1(只有2的数字与位置都...